Python类型-如果没有,可以避免导入可选类型吗?

问题描述 投票:1回答:1

假设我们有一个这样的函数定义:

def f(*, model: Optional[Type[pydantic.BaseModel]] = None)

因此,在您将某些内容作为pydantic传递之前,不需要安装model。现在假设我们要将函数打包到pypi包中。我的问题是,是否有办法避免仅出于类型检查的目的将pydantic引入程序包依赖项?

python pypi typing mypy
1个回答
0
投票

Python的typing模块可以使用字符串类型名称以及类型本身,就像您在示例中一样。

如果您不希望在运行代码时评估类型,并且如果尚未导入模块则抛出异常,那么您可能更喜欢使用字符串名称。您的代码段将是:

def f(*, model: Optional[Type["pydantic.BaseModel"]] = None)

您的静态类型检查应该继续起作用,但是您的程序包将不再总是需要依赖pydantic

© www.soinside.com 2019 - 2024. All rights reserved.