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

Python变量交换代码执行顺序解析及结果疑问解答

Python变量交换的执行顺序解析

这段代码里的变量交换逻辑和你想的“先改一个再改另一个”不一样,核心原因是Python的元组解包赋值会先完整计算右边所有表达式的值,再统一给左边变量赋值。

具体执行步骤:

  • 第一步:计算赋值语句右边的variable_2, variable_1,这时候会生成一个元组(2, 1)——注意,这里用的是赋值操作开始前的变量值:variable_2还是2,variable_1还是1,完全没动左边的变量。
  • 第二步:把这个元组里的元素依次对应赋值给左边的变量:把元组第一个元素2赋给variable_1,第二个元素1赋给variable_2。

你担心的“variable_1先变为2导致variable_2也变成2”不会发生,因为右边的所有值是一次性计算好的,不会中途使用左边变量被修改后的值。要是换成分开写两行赋值:

variable_1 = variable_2  # 此时variable_1变成2
variable_2 = variable_1  # 用已经变成2的variable_1赋值,结果就是2,2

才会出现你说的情况,但元组解包的方式是批量计算、批量赋值,所以能安全交换两个变量的值。

内容的提问来源于stack exchange,提问作者Андрей Белый

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:50:34