PyCharm/Python docstring本地导入类的返回类型提示

2024-09-27 21:22:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在docstring中定义一个rtype,使用一个没有在模块中全局导入的类(因为我不能这样做,因为循环导入)。在

也就是说,像这样:

def get_engine():
   """
   :rtype: sisyphus.localengine.LocalEngine
   """
   from sisyphus.localengine import LocalEngine
   return LocalEngine()

sisyphus是一个包,sisyphus.localengine是该包中的模块。我在PyCharm中注册了sisyphus的父目录作为源根目录。在

这似乎行不通。至少PyCharm(2018.2.4)显示了这个函数的类型提示() -> Any。在

如果我删除rtype提示,它将显示正确的提示() -> LocalEngine,因此音频检测可以工作(如果我不想显式指定它)。在

如何正确地指定rtype提示以使其正常工作?在


Tags: 模块fromimportgetreturn定义def全局
1条回答
网友
1楼 · 发布于 2024-09-27 21:22:24

假设您使用python>;=3.5,那么可以在类型提示中使用forward references
也可以看到这个喷射器blog post。在

def foo() -> 'sisyphus.localengine.LocalEngine':
    ...

相关问题 更多 >

    热门问题