【发布时间】:2020-06-23 05:10:10
【问题描述】:
假设我们有一个这样的函数定义:
def f(*, model: Optional[Type[pydantic.BaseModel]] = None)
所以该函数不需要安装pydantic,直到您将某些内容作为model 传递。现在假设我们要将函数打包到 pypi 包中。我的问题是,是否有办法避免将pydantic 引入包依赖项,只是为了进行类型检查?
【问题讨论】:
-
您不必导入完整的模块。可以导入具体型号
from pydantic import BaseModel -
要考虑的选项是使用字符串类型名称,例如
Optional[Type["pydantic.BaseModel"]]。然后,您的代码将在不安装pydantic模块的情况下正常运行。它仍然可以用于静态类型检查。