首页 > 解决方案 > 键入注释稍后定义的类(前向参考)

问题描述

出于风格原因,我试图在 Foo 类之前保留 myDict 的定义。这将导致 NameError 因为 Foo 尚未定义。

from typing import Dict

myDict: Dict[str, Foo] = {}

class Foo:
    pass

将 myDict 移到 Foo 下面显然可以解决这个问题,但是有什么办法可以让 myDict 及其注释保持在顶部?

标签: pythonpython-3.xannotations

解决方案


您可以按如下方式引用它:

from typing import Dict

myDict: Dict[str, 'Foo'] = {}

class Foo:
    pass

有关更多信息,请参阅https://www.python.org/dev/peps/pep-0484/#forward-references


推荐阅读