如何从这样的父类中提示一个类?
class Cls1:
class Cls2:
p2: int
class Cls3:
p3: Cls2 # undefined name 'Cls2'
class Cls4:
p4: Cls2 # undefined name 'Cls2'
答案 0 :(得分:0)
是,请参见PEP 484 §Forward References:
当类型提示包含尚未定义的名称时, 定义可以表示为字符串文字,稍后再解决。
通常会发生这种情况的情况是 容器类,其中定义的类出现在签名中 其中一些方法。
因此,在您的示例中,请在字符串中引用尚未定义的类型:
class Cls1:
class Cls2:
p2: int
class Cls3:
p3: 'Cls2'
class Cls4:
p4: 'Cls2'
请注意,尽管Python很乐意接受上述内容,但mypy(v0.641)似乎存在错误,无法找到Cls2
。