问题描述
我正在为专有Python平台编写类型存根。该平台通常在某些模块中定义类,然后从其他模块中重新导出它们。我需要类型存根来反映该类型存在于多个文件中。
例如
_foo.py:
class SomeType:
# Implementation here
foo.py:
from _foo import SomeType
如何为这些文件编写类型存根?
我已经尝试过了:
_foo.pyi:
class SomeType:
...
foo.pyi:
from _foo import SomeType
但是它不起作用,mypy抛出此错误:
错误:未定义名称'foo.SomeType'
有没有一种方法可以在不将类型存根复制粘贴到两个文件中的情况下完成这项工作?
解决方法
经过反复试验,我注意到这可行:
foo.pyi:
from _foo import SomeType
__all__ = ["SomeType"]
我对此并不感到兴奋,因为它看起来可能有副作用,但目前它仍然有效。