Почему list.append оценивает ко лжи в булевом контексте? [дубликат]

XCode включает XCTest, который подобен OCUnit, платформа поблочного тестирования Objective C, и имеет полную поддержку выполнения находящихся в XCTest модульных тестов как часть процесса сборки Вашего проекта. Поддержка поблочного тестирования XCode описана в Обзор XCode: Используя Модульные тесты .

Назад в XCode 2 дня, я записал ряд сообщений блога о том, как выполнить некоторые общие задачи с поблочным тестированием XCode:

Несмотря на использование OCUnit, а не XCTest, понятия являются в основном тем же.

Наконец, я также записал несколько сообщений о том, как тестам записи на пользовательские интерфейсы Какао; путем Какао структурировано, делает его относительно простым, потому что Вы не должны вращать цикл событий или что-либо как этот в большинстве случаев.

Это позволяет сделать разработку через тестирование для не только Ваш код образцового уровня, но также и Ваш уровень контроллера и даже код уровня представления.

33
задан Aran-Fey 14 May 2018 в 10:29
поделиться

5 ответов

Большинство методов Python, которые изменяют контейнер в -place return Нет - применение принципа разделения команд и запросов . (Python всегда достаточно прагматичен в отношении вещей, поэтому некоторые мутаторы действительно возвращают полезное значение, когда его получение в противном случае было бы дорогостоящим или беспорядочным - метод pop - хороший пример этого прагматизма - но это определенно исключение, а не правило, и вот '

39
ответ дан 27 November 2019 в 17:57
поделиться

None оценивается как False , а в python функция, которая ничего не возвращает, предполагается, что вернула None .

Если вы набираете:

>> print u.append(6)
None

Tadaaam :)

20
ответ дан 27 November 2019 в 17:57
поделиться

, потому что метод .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'
6
ответ дан 27 November 2019 в 17:57
поделиться

Он изменяет список на месте и возвращает Нет . Нет оценивается как ложь.

5
ответ дан 27 November 2019 в 17:57
поделиться

На самом деле он возвращает Нет


>>> print u.append(6)
None
>>> print not None
True
>>> 

3
ответ дан 27 November 2019 в 17:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: