Luc*_*mon 3 python hash equality object
这段代码片段让我很困惑:
class O(object):
pass
O() == O() # False
O() is O() # False
hash(O()) == hash(O()) # True !
id(O()) == id(O()) # True !!!
Run Code Online (Sandbox Code Playgroud)
我一直认为is运算符正在比较ids,并且默认实例相等check(==)也比较了ids,或者至少是hashes:
2类实例如何共享相同id但不以任何方式相同?
我正在使用CPython 2.7.6.