当前位置:   article > 正文

Python中typing库中 Union 和 Optional 的具体区别

Python中typing库中 Union 和 Optional 的具体区别

在 Python 的 typing 模块中,UnionOptional 是两种不同的类型提示工具,它们在使用场景和含义上有所区别。

  1. Union:
    • Union 用于指定一个变量可以是多种类型中的一种。
    • 语法: Union[type1, type2, ...]
    • 例如,Union[int, float] 表示一个变量可以是整数类型或者浮点数类型。
  1. from typing import Union
  2. def square(value: Union[int, float]) -> Union[int, float]:
  3. return value * value
  4. result1 = square(5) # 返回整数类型 25
  5. result2 = square(2.5) # 返回浮点数类型 6.25

  1. Optional:
    • OptionalUnion 的一个特殊情况,用于表示一个变量可以是某种类型或者 None
    • 语法: Optional[type]
    • 例如,Optional[int] 表示一个变量可以是整数类型或者 None
  1. from typing import Optional
  2. def divide(dividend: float, divisor: Optional[float]) -> Optional[float]:
  3. if divisor is None:
  4. return None
  5. return dividend / divisor
  6. result1 = divide(10, 2) # 返回 5.0
  7. result2 = divide(10, None) # 返回 None

在这个示例中,divide 函数接受两个参数 dividenddivisordivisor 参数的类型被标注为 Optional[float],表示它可以是浮点数类型,也可以是 None。在函数内部,如果 divisorNone,函数会返回 None,否则执行除法操作。

因此,Union 用于指定一个变量可以是多种类型中的一种,而 Optional 用于表示一个变量可以是某一种类型或者 None

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号