Python 注释稍后定义的类的类型(正向引用)
出于风格的原因,我试图在Foo类之前保留myDict的定义。这将导致名称错误,因为尚未定义FooPython 注释稍后定义的类的类型(正向引用),python,python-3.x,annotations,Python,Python 3.x,Annotations,出于风格的原因,我试图在Foo类之前保留myDict的定义。这将导致名称错误,因为尚未定义Foo 从键入import Dict开始 myDict:Dict[str,Foo]={} Foo类: 通过 将myDict移到Foo下面显然可以解决这个问题,但是有没有办法让myDict及其注释保持在最上面?您可以引用如下: from typing import Dict myDict: Dict[str, 'Foo'] = {} class Foo: pass 有关更多信息,请参阅。根据您
从键入import Dict开始
myDict:Dict[str,Foo]={}
Foo类:
通过
将myDict移到Foo下面显然可以解决这个问题,但是有没有办法让myDict及其注释保持在最上面?您可以引用如下:
from typing import Dict
myDict: Dict[str, 'Foo'] = {}
class Foo:
pass
有关更多信息,请参阅。根据您正在运行的python(Py3.7+)版本,您可以:
from __future__ import annotations
然后您的代码按原样运行。引入了对注释的延迟评估,这意味着您不需要使用原始方法将类型置于引号中,例如'Foo'