Есть ли причина, когда list.append оценивается как false? Или это просто соглашение о возвращении 0 при успешном запуске?
>>> u = []
>>> not u.append(6)
True
Ответ 1
Большинство методов Python, которые мутируют контейнер на месте return None - приложение принципа Разделение командного запроса. (Python всегда разумно прагматичен в отношении вещей, поэтому несколько мутаторов действительно возвращают полезную ценность, когда получение в противном случае будет дорогостоящим или беспорядочным - метод pop является хорошим примером этого прагматизма - но это, безусловно, исключение, а не правило, и нет оснований делать исключение append).
Ответ 2
None оценивается как False, а в python предполагается, что функция, которая ничего не возвращает, вернула None.
Если вы наберете:
>> print u.append(6)
None
Тадаам:)
Ответ 3
Он изменяет список на месте и возвращает None. None оценивается как false.
Ответ 4
потому что метод .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'
Ответ 5
На самом деле он возвращает None
>>> print u.append(6)
None
>>> print not None
True
>>>