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

如何为从Tuple中解包提取的多个变量添加类型注解

Python元组解包时的变量类型标注正确实现方式

你尝试的写法不符合Python语法规范,正确实现有以下几种可选方案:

方案1:兼容Python 3.6+的通用写法

先单独声明每个变量的类型,再执行解包赋值,所有支持变量类型标注的Python版本都可使用:

from typing import Tuple

def f() -> Tuple[int, int, int]: 
    return 1, 2, 3

# 先标注各变量类型
i: int
j: int
n: int
# 再执行解包赋值
i, j, n = f()

方案2:Python 3.10+ 支持的简化写法

Python 3.10 开始允许将整个解包变量列表用括号包裹后,分别为每个变量添加类型标注:

from typing import Tuple

def f() -> Tuple[int, int, int]: 
    return 1, 2, 3

# 整个左侧变量用括号包裹后分别加标注即可
(i: int, j: int, n: int) = f()

方案3:使用cast做类型标注

如果不想拆分赋值和标注步骤,也可以用typing.cast对返回值做类型标注,适配所有Python 3.6+版本:

from typing import Tuple, cast

def f() -> Tuple[int, int, int]: 
    return 1, 2, 3

i, j, n = cast(Tuple[int, int, int], f())

注:Python 3.9及以上版本可以直接使用内置的tuple类型代替需要导入的Tuple,即写为tuple[int, int, int]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:57:03