gpt4 book ai didi

python-3.x - 创建数据类时,我可以使用类型模块中的 Union 和 Optional 类型吗?

转载 作者:行者123 更新时间:2023-12-01 02:44:44 26 4
gpt4 key购买 nike

我想使用 UnionOptional创建数据类时的类型。
我可以安全地使用这些类型吗?

例如。:

@dataclass
class Car:
year: int
owner: Optional[str]
engine: Union[Engine1, Engine2]

最佳答案

是的你可以。首先,python 中的注释本身不会做任何事情。对于其他语言,您可能期望将变量声明为 int如果将其实例化为字符串,则会导致错误,但在 python 中并非如此。

注释仅由第三方库或工具使用,例如您的 IDE,当它为您提供提示时,或 mypy 当它对您的代码进行静态类型分析时。

所以你应该使用一种你的工具可以很好地工作的注解,根据我的个人经验,这意味着使用 typing 中的类型注解。模块超过基本类型。

虽然没有关于必须使用什么的声明性声明,here is a thread讨论默认数据类类型,包括 ericvsmith(dataclasses 模块的作者)和 gvanrossum(python 的作者),他们同意 typing.Any应该优先于 object .

我假设数据类文档使用基本的 python 类型,以免给读者带来太多的知识负担。您可以很好地使用数据类,而无需了解 typing。毕竟是模块,一旦您对数据类的工作方式感到满意,您可能会遇到并欣赏使用 typing 的额外功能。的注释无论如何。

关于python-3.x - 创建数据类时,我可以使用类型模块中的 Union 和 Optional 类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55472320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com