abc模块

时间:2018-05-16 12:20:04

标签: python python-3.x

通过阅读“Fluent Python”的第二章,我读到了关于abc模块的内容。所以我开始编写一些代码来玩它。为什么空类是抽象基类Hashable的实例?

from collections import abc

class foo:
    pass

print(isinstance(foo,abc.Hashable)) # True

1 个答案:

答案 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