,我看到了一个建议使用的声明
result is not None
对比
result != None
我想知道有什么区别,为什么会推荐一个而不是另一个?
==是一个 平等测试 。它检查右手边和左手边是否是相等的对象(根据他们的__eq__或__cmp__方法。)
==
__eq__
__cmp__
is是 身份测试 。它检查右手边和左手边是否是同一个对象。没有方法调用,对象不能影响is操作。
is
您将is(and is not) 用于单例,例如None,您不关心可能想要假装的对象,None或者您希望在与 比较时防止对象损坏的地方None。
is not
None