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

Python中a,b = b,a语句的内存工作原理是什么?

Python中a, b = b, a的内存工作原理

这个语句本质是利用了Python的元组打包与解包特性,内存层面的执行步骤很清晰:

  • 首先计算等号右侧的表达式b, a:Python会把b和a当前的内存值(示例里是2和1)打包成一个临时元组,这个元组会被临时存储在内存中。
  • 接着执行解包赋值:把临时元组的第一个元素赋值给左侧的a,第二个元素赋值给左侧的b。
  • 赋值完成后,这个临时元组会被Python的垃圾回收机制标记为可回收,后续会被自动清理,不会长期占用内存。

对比传统的交换写法:

temp = a
a = b
b = temp

a, b = b, a不需要额外定义临时变量temp,而是用语言内置的元组操作完成,内存开销几乎可以忽略,写法也更简洁。

举个具体的内存变化逻辑:

  1. 初始状态:a指向内存中存储值1的地址,b指向存储值2的地址。
  2. 执行b, a时,创建临时元组,元组的两个元素分别指向2和1的内存地址。
  3. 解包赋值:让a重新指向2的地址,b重新指向1的地址。
  4. 临时元组失去引用,等待被回收。

示例代码验证:

a = 1
b = 2

a, b = b, a
print(a, b)  # 输出:2 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:37:22