类上的变量注释

时间:2017-10-06 12:22:14

标签: python annotations python-3.6 type-hinting

我正在尝试在某些代码中构建一个对象图,我在Python 3.6中使用类属性提示类属性。通常这看起来像:

class MyObject:
    some_variable: float = 1.2

我的问题是我希望有一个类型为MyObject的属性:

class MyObject:
    parent: MyObject = None

当我尝试这个时,当我尝试在注释上执行此操作时,我得到“NameError:name'MyObject'未定义”。这似乎是一个不受支持的边缘情况,目前无法成功,因为MyObject在定义注释时并不完全存在。

2 个答案:

答案 0 :(得分:2)

可以使用forward references完成此操作。所以你的代码看起来像这样:

class MyObject:
    parent: 'MyObject' = None

答案 1 :(得分:0)

这似乎是hacky,可能不是理想的方法,但是 您可以使用

定义MyObject
class MyObject:
    pass

并将MyObject重新定义为:

class MyObject:
    parent: MyObject = None