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

Python中递归嵌套对象(如任意维度int列表)应使用何种类型提示?

Python递归嵌套对象的类型提示方案

针对你提到的“元素为int、可任意嵌套的列表”这类递归结构,有几种更清晰规范的类型提示写法:

1. 使用TypeVar递归定义(兼容Python 3.8+)

这是最通用的方案,能明确表达“int或由该类型组成的列表”的递归逻辑:

from typing import TypeVar, List

NestedIntList = TypeVar('NestedIntList', int, List['NestedIntList'])

这里通过TypeVar递归引用自身,完美支持任意层级的嵌套,类型检查工具(如mypy)能准确识别。

2. Python 3.10+ 管道语法简化写法

Python 3.10引入了|作为Union的简写,结合字符串字面量引用自身,写法更简洁:

from typing import List

NestedIntList = int | List['NestedIntList']

3. Python 3.11+ 无引号自我引用

Python 3.11进一步支持了无需字符串引号的自我类型注解,可读性更强:

from typing import List

NestedIntList = int | List[NestedIntList]

关于你原写法的问题

你给出的list[int | list[int | ...]]虽然能表达嵌套意图,但...的语义不够明确,且本质上只能表达“int或嵌套一层的列表”的延伸,不如递归类型定义清晰、通用,类型检查工具对这种写法的支持也不如递归定义完善。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:20:28