有这段代码:
>>> (a, b) = (2, 3)
>>> a
2
>>> b
3
为什么变量 a 和 b 在元组创建后仍然存在?我的意思是:
(a, b) = (2, 3)
创建了一些元组并且这个元组没有分配给任何变量所以垃圾收集器应该在这一行之后立即销毁这个元组。
变量 a 和 b 只是这个元组的引用 - 所以如果这个元组 (a, b) 被破坏那么变量 a 和 b 也应该只被销毁。
那么为什么元组定义后这些变量还存在呢?
请您参考如下方法:
(a, b) = (2, 3)
不创建元组,而是分配两个变量 a 和 b。
相当于:
a,b = 2,3
并“同时”设置a=2 和b=3。这很有用,例如在切换变量时:
a,b = b,a
这将设置 a=3 和 b=2(如果按顺序完成,则需要一个临时变量)。
