【发布时间】:2020-05-18 23:51:16
【问题描述】:
我正在尝试将数据类用于某事,并且我需要在其中初始化一个空集,但我无法弄清楚如何去做。在使用数据类(只是普通类)之前,我拥有的等效工作是self.children = set(),这对我的目的来说很好。如何在数据类中获得等价物?
我需要它默认初始化,不必每次都作为参数传递。
from dataclasses import dataclass, field
@dataclass(unsafe_hash=True)
class Node:
index: int
name: str
children: set = field(default_factory=set, hash=True)
尝试将项目添加到集合时遇到错误。添加的项目是 Node 类型(上面的类)。
root.children.add(child)
File "<string>", line 2, in __hash__
TypeError: unhashable type: 'set'
【问题讨论】:
-
children: set? -
请说明您尝试了什么以及失败的原因。代码中的注释说您尝试了一些东西并没有多大帮助......
-
对不起,我还应该指定它必须被初始化,不必每次都作为参数传递。添加了我尝试过的东西。
标签: python python-3.x set python-3.7 python-dataclasses