为什么list.append评估为false?

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

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

大多数就地改变容器的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 >>>