我的问题与新Python的类型提示有关。我正在尝试在对象的方法中添加一个类型提示,该方法具有相同类型的对象的参数,但PyCharm将我标记为错误(unresolved reference 'Foo'
)。问题如下:
class Foo:
def foo_method(self, other_foo: Foo):
return "Hello World!"
所以问题是如何正确定义other_foo
参数的类型。也许__class__
是正确的?
答案 0 :(得分:7)
在类的内部,类尚未定义,导致NameError
(和PyCharm抱怨)。
要解决此问题,请使用forward declarations:
class Foo:
def foo_method(self, other_foo: "Foo"):
return "Hello World!"
基本上,如果类型注释是一个字符串,则在加载整个模块后它是eval
,因此它可以评估为Foo
类。