赞
踩
在 Python 的 typing
模块中,Union
和 Optional
是两种不同的类型提示工具,它们在使用场景和含义上有所区别。
- Union:
Union
用于指定一个变量可以是多种类型中的一种。- 语法:
Union[type1, type2, ...]
- 例如,
Union[int, float]
表示一个变量可以是整数类型或者浮点数类型。
- from typing import Union
-
- def square(value: Union[int, float]) -> Union[int, float]:
- return value * value
-
- result1 = square(5) # 返回整数类型 25
- result2 = square(2.5) # 返回浮点数类型 6.25
- Optional:
Optional
是Union
的一个特殊情况,用于表示一个变量可以是某种类型或者None
。- 语法:
Optional[type]
- 例如,
Optional[int]
表示一个变量可以是整数类型或者None
。
- from typing import Optional
-
- def divide(dividend: float, divisor: Optional[float]) -> Optional[float]:
- if divisor is None:
- return None
- return dividend / divisor
-
- result1 = divide(10, 2) # 返回 5.0
- result2 = divide(10, None) # 返回 None
在这个示例中,divide
函数接受两个参数 dividend
和 divisor
,divisor
参数的类型被标注为 Optional[float]
,表示它可以是浮点数类型,也可以是 None
。在函数内部,如果 divisor
是 None
,函数会返回 None
,否则执行除法操作。
因此,Union
用于指定一个变量可以是多种类型中的一种,而 Optional
用于表示一个变量可以是某一种类型或者 None
。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。