【发布时间】:2018-12-31 18:14:34
【问题描述】:
以下将起作用,但我宁愿不需要在每个子类中重复 __hash__。有没有办法告诉数据类继承哈希函数(即不将其设置为None)?
from dataclasses import dataclass
@dataclass
class Hashable:
def __hash__(self):
hashed = hash((
getattr(self, key)
for key in self.__annotations__
))
return hashed
@dataclass
class Node(Hashable):
name: str = 'Undefined'
def __hash__(self):
return Hashable.__hash__(self)
【问题讨论】:
-
您想自己定义该哈希有什么特别的原因吗?如果你设置
frozen=True,它基本上是一个错误的、不太安全的版本。
标签: python hash data-class