【发布时间】:2021-10-01 19:54:10
【问题描述】:
我有一个相互引用的数据类实例。
from dataclasses import dataclass
@dataclass()
class Foo:
id: int
neighbor: 'Foo'
foo = Foo(1, None)
bar = Foo(2, foo)
foo.neighbor = bar
我真的想要一个冻结类,因为不能在多线程运行中操作这些对象。但是如果我声明frozen=True,最后一行显然会引发错误。我想不出办法来处理这个问题。我阅读了this thread,但该解决方案对我不起作用,因为foo.neighbor 应该指向另一个冻结的实例。
有什么方法可以实现吗?我不受数据类的约束。但是我在使用命名元组时遇到了同样的问题。
【问题讨论】:
标签: python self-reference namedtuple python-dataclasses