我正在尝试在某些代码中构建一个对象图,我在Python 3.6中使用类属性提示类属性。通常这看起来像:
class MyObject:
some_variable: float = 1.2
我的问题是我希望有一个类型为MyObject的属性:
class MyObject:
parent: MyObject = None
当我尝试这个时,当我尝试在注释上执行此操作时,我得到“NameError:name'MyObject'未定义”。这似乎是一个不受支持的边缘情况,目前无法成功,因为MyObject在定义注释时并不完全存在。
答案 0 :(得分:2)
可以使用forward references完成此操作。所以你的代码看起来像这样:
class MyObject:
parent: 'MyObject' = None
答案 1 :(得分:0)
这似乎是hacky,可能不是理想的方法,但是 您可以使用
定义MyObjectclass MyObject:
pass
并将MyObject重新定义为:
class MyObject:
parent: MyObject = None