联合类型(Union Type)用来告诉类型检查器:
“这个变量/参数允许同时是几种不同类型中的任意一种。”
- Python 3.10 之前:typing.Union
from typing import Union
def print_id(uid: Union[int, str]) -> None:
print(uid)
# 合法调用
print_id(123) # int
print_id("abc") # str
Union[int, str] 表示“int 或 str 都可以”。
- Python 3.10 起:用 | 操作符(PEP 604)
def print_id(uid: int | str) -> None:
print(uid)
功能完全等价,但更短、可读性更好。