Есть ли какое-либо различие между “нечто, не Ни один” и “нечто == Ни один”?

Есть ли любое различие между:

if foo is None: pass

и

if foo == None: pass

Конвенция, которую я видел в большей части кода Python (и код I сам запись) является первым, но я недавно столкнулся с кодом, который использует последнего. Ни один не экземпляр (и единственный экземпляр, IIRC) NoneType, таким образом, он не должен иметь значения, правильно? Есть ли какие-либо обстоятельства, при которых это могло бы?

214
задан Joe Shaw 25 August 2008 в 07:27
поделиться

1 ответ

Причина, по которой foo is None является предпочтительным способом, заключается в том, что вы можете работать с объектом, который определяет свой собственный __eq__, и который определяет объект равным None. Поэтому всегда используйте foo is None, если вам нужно проверить, действительно ли он None.

12
ответ дан 23 November 2019 в 04:26
поделиться
Другие вопросы по тегам:

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