通常我们写:
if foo is None: pass
这个写法与以下的写法有何区别呢?
if foo == None: pass
is当比较的是相同的对象实例时总是返回True。而==则完全决定于__eq__()方法的实现。例如:
>>> class foo(object):
def __eq__(self, other):
return True
>>> f = foo()
>>> f == None
True
>>> f is None
False