isTrue如果比较相同的对象实例,则始终返回而==最终由该__eq__()方法确定即>>> class Foo(object): def __eq__(self, other): return True>>> f = Foo()>>> f == NoneTrue>>> f is NoneFalse
请注意:if foo: # do something与以下内容不完全相同:if x is not None: # do something前者是布尔值测试,可以在不同的上下文中评估为false。在布尔值测试中,有很多东西代表假,例如空容器,布尔值。在这种情况下,没有人会得出错误的结论,但其他事情也会发生。