来自父类的提示

时间:2018-10-26 12:37:00

标签: python python-3.x type-hinting python-typing

如何从这样的父类中提示一个类?

class Cls1:
    class Cls2:
        p2: int

    class Cls3:
        p3: Cls2  # undefined name 'Cls2'

    class Cls4:
        p4: Cls2  # undefined name 'Cls2'

1 个答案:

答案 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