为什么list.append评估为false?

是否有一个原因是list.append评估为false? 还是仅仅是成功时返回0的C约定呢?

 >>> u = [] >>> not u.append(6) True 

5 Solutions collect form web for “为什么list.append评估为false?”

大多数就地改变容器的Python方法都返回None – 一个Command-Query分离原理的应用程序。 (Python总是对事情合理务实,所以有些增变器在获得它的时候会返回一个可用的值,否则将会是昂贵的或者是一团糟 – pop方法就是这种实用主义的一个很好的例子 – 但是那些肯定是例外,而不是规则,没有理由append例外)。

None评估为False而在python中,一个不返回任何东西的函数被假定为返回None

如果你input:

 >> print u.append(6) None 

Tadaaam 🙂

它就地修改列表,并返回NoneNone评估为假。

因为.append方法返回None ,因此not None计算结果为True 。 错误的Python通常会引发一个错误:

 >>> a = () >>> a.append(5) Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> a.append(5) AttributeError: 'tuple' object has no attribute 'append' 

实际上,它返回None

>>> print u.append(6) None >>> print not None True >>>
>>> print u.append(6) None >>> print not None True >>> 
  • 什么是Python3的“function注释”
  • Python - 如何在os.listdir中查找文件和跳过目录
  • 如何通过while循环dynamic创buildvariables?
  • 你如何unit testing芹菜任务?
  • 暂时redirectstdout / stderr
  • Stackless Python有什么缺点?
  • Python Pandas所选列的最大值
  • 如何将subprocess调用传递给文本文件?
  • python中%r的含义是什么?
  • FSharp运行我的algorithm比Python慢
  • 追加新的行到旧的csv文件python