Are __eq__, __ne__, __hash__ attributes of object type?
在下面的属性列表中,
ZZU1EDOCX1-0、EDOCX1-1和EDOCX1-2不显示为属性。它们是元类EDOCX1的属性
ZZU1而EDOCX1-4与EDOCX1-3不在EDOCX1-5关系中。
ZZU1但是,我看到这些属性是EDOCX1的一部分
ZZU1这允许
ZZU1-4型覆盖这些属性。
问题:
这些是EDOCX1到4的属性吗?
使用您的
1 2 | class X(object): pass |
然后
1 | X == X |
号
将呼叫
但是:
1 | X() == X() |
将呼叫
至少,只要你不重写这些神奇的方法(直接在你的
如果您"进入元",那么重要的是要知道元类对类是什么,实例对类是什么:
1 2 3 4 5 | >>> isinstance(object, type) # class & metaclass True >>> isinstance(X(), X) # instance & class True |
。
它们是数据模型定制的一部分,称为"magic methods",您必须将它们视为与Python功能交互的接口。这是所有与此相关的文档。