假设我在 python3 中有一个数据类。我希望能够对这些对象进行散列和排序。我不希望这些是不可变的。
我只希望他们在 id 上排序/散列。
我在文档中看到我可以实现 _ hash _ 以及所有这些,但我想让 datacalsses 为我完成这项工作,因为它们旨在处理这个问题。
from dataclasses import dataclass, field
@dataclass(eq=True, order=True)
class Category:
id: str = field(compare=True)
name: str = field(default="set this in post_init", compare=False)
a = sorted(list(set([ Category(id='x'), Category(id='y')])))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'Category'