不太理解,重写Foo类的__eq__方法,并且永远返回True的意义是?
如果拿着个举例来对比 == None 和 is None 的区别好像不太有说服力吧:
1. 如果 foo == None,foo就指向了特殊对象None所在的地址,则,foo is None
>>> a = None
>>> id(a)
1790158032
>>> b = 'HelloKitty'
id(b)
42362672
>>> b = a
id(b)
1790158032
>>> id(None)
1790158032
2. 如果foo is None,同理,foo也指向None所在的特殊地址,则foo == None
foo == None 等价于
foo.__eq__(None)
foo is None 等价于
id(foo).__eq__(id(None))
综上,判断一个对象是否是None,用 is 和 == 判断是等价的。
如有错误,请指出,谢谢。
Python——"is None"与"==None"区别is always returns True if it compares the same object instance Whereas == is ultimately...