gpt4 book ai didi

python - 类型提示中的可选联合

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

在类型提示系统中,Optional[T]据说相当于Union[T, None]
这适用于多个类型参数吗? IE,

是否Optional[T,U]突破到 Union[T,U,None] ,或者我需要把它写成 Optional[Union[T,U]]

最佳答案

您可能会想到 typing 库作为关于如何声明某些类型的规范。如果该规范中未定义某些内容,那么最好将其假设为未定义的行为。

然而,在 python 和类型的特殊情况下,我们有一种引用静态类型检查器,它是 mypy .因此,为了获得您问题的答案,或者只是以编程方式检查类型,我们可能会使用它并查看它是否显示任何警告。

下面是一个例子:

$ cat check_optional.py 
import typing
def fn(x: typing.Optional[int, str]):
pass
$ mypy check_optional.py
check_optional.py:3: error: Optional[...] must have exactly one type argument

所以不, Optional[T, U]即使在 typing 中声明它没有问题,在 mypy 方面也是不可能的。图书馆。

除了从“函数式编程”的角度来看 OptionalUnion是两个不同但众所周知且定义明确的 monads .两个 monad ( Optional[T, U, None] ) 的组合是另一个 monad,但其行为与 Optional 不同。因此不应如此命名。

关于python - 类型提示中的可选联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55231989/

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