Шах*_*Шах 5 python inner-classes python-3.x
我有以下类结构:
class Root:
@dataclass
class Leaf:
pass
@dataclass
class Node:
leaf: Leaf
Run Code Online (Sandbox Code Playgroud)
问题是PyCharm看不到Leaf类,我也尝试将其指定为leaf: Root.Leaf甚至'Root'.Leaf...有相同的结果。
如果类型是另一个内部类,如何在内部类中声明字段类型?在Python中可以吗?
PS我可以使该类Leaf成为类的内部成员Node,但我对我的示例感兴趣。
通常,您不能从另一个内部类引用内部类,但出于类型注释的目的,您可以使用字符串进行此类前向引用:
from dataclasses import dataclass
class Root:
@dataclass
class Leaf:
pass
@dataclass
class Node:
leaf: 'Root.Leaf'
print(Root.Node(Root.Leaf()).leaf)
Run Code Online (Sandbox Code Playgroud)
这将通过静态类型检查和输出:
Root.Leaf()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1239 次 |
| 最近记录: |