如果函数在 Python 中返回模块,要使用什么返回类型注释?
我正在编写一个函数来帮助处理一个可选的依赖项(类似于pytest.importorskip),我想输入它,但不确定要使用什么类型。因为我总是返回一个特定的模块或 None,我想我可以比“Any”更具体。
def try_import_pyarrow():
try:
import pyarrow
except ImportError:
pyarrow = None
return pyarrow
回答
模块的类型可以作为types.ModuleType.
- 如果它可以返回`None`,那么应该将其键入为`Optional[ModuleType]`