通过阅读“Fluent Python”的第二章,我读到了关于abc模块的内容。所以我开始编写一些代码来玩它。为什么空类是抽象基类Hashable的实例?
from collections import abc
class foo:
pass
print(isinstance(foo,abc.Hashable)) # True
答案 0 :(得分:1)
所有isinstance(foo, abc.Hashable)
都会检查您的对象是否有__hash__
方法,这就是Python调用哈希对象的方法。类本身是object
,因此继承了object.__hash__
方法。
class Foo:
pass
isinstance(Foo, object) # True
Foo.__hash__ # <slot wrapper '__hash__' of 'object' objects>
hash(Foo) # -9223371900938361605