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

Python 3.10+可选类型标注:Optional[Type]和Type | None哪个更推荐

Python 3.10+ 可选类型标注规范解答

两种可选类型写法的推荐选择

Python 3.10及更高版本更推荐使用选项2的管道运算符写法:

def f(parameter: int | None) -> str | None:

推荐原因如下:

  • 不需要额外从typing模块导入Optional依赖,代码更简洁
  • 语法直观易懂,开发者可以直接看出「类型支持指定类型或None」的含义,可读性更高
  • 该写法是PEP 604明确规定的标准类型标注语法,已经成为当前Python生态的主流规范

如果你需要兼容Python 3.9及更低版本,才需要使用Optional[int]的写法,低版本Python不支持管道运算符的类型标注语法。

Type | None与None | Type的顺序偏好

官方没有强制规定二者的书写顺序,但行业通用约定优先使用Type | None的写法,原因如下:

  • 符合语义逻辑:参数或返回值的核心类型是前者的Type,仅额外补充可能为None的场景,开发者第一眼就能识别核心类型
  • 绝大多数Python开源项目都遵循该约定,统一写法可以降低团队协作的沟通理解成本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:27:03