我有下一个类结构:
class Root:
@dataclass
class Leaf:
pass
@dataclass
class Node:
leaf: Leaf
问题是PyCharm看不到
Leaf
类,我也尝试将其指定为leaf: Root.Leaf
甚至'Root'.Leaf
...结果相同。Leaf
类作为 Node
类的内部类,但我对我的示例感兴趣。
通常你不能从另一个内部类引用一个内部类,但是为了类型注释的目的,你可以使用字符串进行这样的前向引用:
from dataclasses import dataclass
class Root:
@dataclass
class Leaf:
pass
@dataclass
class Node:
leaf: 'Root.Leaf'
print(Root.Node(Root.Leaf()).leaf)
这将通过静态类型检查和输出:
Root.Leaf()