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

时间:2018-09-26 08:29:37

标签: python pycharm

我想使用未在模块中全局导入的类在文档字符串中定义rtype(因为由于循环导入而无法执行此操作)。

即像这样:

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

sisyphus是一个程序包,而sisyphus.localengine是该程序包中的模块。我将sisyphus的父目录注册为PyCharm中的源根目录。

这似乎不起作用。至少PyCharm(2018.2.4)对此功能显示了类型提示() -> Any

如果我删除了rtype提示,它将显示正确的提示() -> LocalEngine,因此音频检测有效(如果我不想明确指定它)。

如何正确指定rtype提示以使其起作用?

1 个答案:

答案 0 :(得分:1)

假设您使用的是Python> = 3.5,则可以在类型提示中使用forward references
另请参阅此脑袋blog post

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