Я пытаюсь использовать класс данных для чего-то, и в нем мне нужно инициализировать пустой набор, но я не могу понять, как это сделать. До использования класса данных (просто обычный класс) рабочий эквивалент, который у меня был, был 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'