我们假设以下结构:
class Base:
id = 0
def __type_hash__(cls):
return hash((Base,cls.id))
def __init__(self,value)
self.value = value
def __hash__(self):
return hash(value)
class C87(Base):
id = 0x87
class CA0(C87):
id = 0xA0
class CFoo(C87):
pass
class CBar(CA0):
pass
例如,我想在列表和键中使用该类
C87 in [CFoo] == True
CFoo in [Base, CA0] == False
__type_hash__
- 未知魔法的占位符。实例应按值进行比较,类应按 id 进行比较。
如果我正确理解你的想法: