我想使用未在模块中全局导入的类在文档字符串中定义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
提示以使其起作用?
答案 0 :(得分:1)
假设您使用的是Python> = 3.5,则可以在类型提示中使用forward references。
另请参阅此脑袋blog post。
def foo() -> 'sisyphus.localengine.LocalEngine':
...