You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.9及以上版本Union类型提示是否需导入?有无新规范?

Python 3.9+ 多类型联合的类型提示规范

明确说结论:Python 3.10及以上版本,不需要导入Union,直接用竖线|就能表示类型联合,这是PEP 604引入的简化语法。

不同版本写法对比

  • 3.8及更早版本(必须导入Union和List):
from typing import List, Union

some_stuff: List[Union[int, str, float, List[str]]] = [98, "Fido", -34.925, ["Phantom", "Tollbooth"]]
  • 3.9-3.10版本(集合类型可用原生写法,但联合类型仍需Union):
from typing import Union

some_stuff: list[Union[int, str, float, list[str]]] = [98, "Fido", -34.925, ["Phantom", "Tollbooth"]]
  • 3.10及以上版本(原生集合类型+|替代Union,最简洁):
some_stuff: list[int | str | float | list[str]] = [98, "Fido", -34.925, ["Phantom", "Tollbooth"]]

补充说明

  • 要是项目需要兼容3.9及以下版本,还是得保留Union的导入;但如果只面向3.10+环境,用|的写法更清爽。
  • 竖线语法不止能用在集合泛型里,单独变量的类型提示也适用,比如user_id: int | str = 1001。

内容的提问来源于stack exchange,提问作者Hofbr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 13:30:44