这个问题在本论坛已经争论过很多次了。然而,有一种情况我还没有找到好的解决方法。
from __future__ import annotations
class ClassA:
pass
class ClassC:
c : ClassB
children : dict = {'A': ClassA, 'B': ClassB}
class ClassB:
pass
有趣的是,语句
c : ClassB
工作正常,但在字典中引用 ClassB
会生成错误:
NameError: name 'ClassB' is not defined.
有办法让这段代码工作吗?
from __future__ import annotations
class ClassA:
pass
class ClassC:
c: ClassB
children: dict = {"A": ClassA}
class ClassB:
pass
ClassC.children.setdefault("B", ClassB)
这可以是解决方案