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