gpt4 book ai didi

Python 3.10+ : Optional[Type] or Type | None

转载 作者:行者123 更新时间:2023-12-04 14:36:39 24 4
gpt4 key购买 nike

现在 Python 3.10 已经发布,在表明参数或返回值可能是可选的时是否有任何偏好,即可以是 None .那么什么是首选:
选项 1:

def f(parameter: Optional[int]) -> Optional[str]:
选项 2:
def f(parameter: int | None) -> str | None:
另外, Type | None之间有什么偏好吗?和 None | Type ?

最佳答案

PEP 604在规范部分涵盖了这些主题。

The existing typing.Union and | syntax should be equivalent.

int | str == typing.Union[int, str]

The order of the items in the Union should not matter for equality.

(int | str) == (str | int)
(int | str | float) == typing.Union[str, float, int]

Optional values should be equivalent to the new union syntax

None | t == typing.Optional[t]

@jonrsharpe comments , UnionOptional没有被弃用,所以 Union|语法是可以接受的。

Łukasz Langa Python核心开发者,在YouTube直播中回复了与Python 3.10版本相关的 Type | None优于 Optional[Type]适用于 Python 3.10+。
enter image description here

关于Python 3.10+ : Optional[Type] or Type | None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69440494/

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