首页 > 技术文章 > 关于tuple数组的不可变特性

chongzi1990 2020-08-11 18:34 原文

今天在学习过程中遇见了一组代码,对于现在的我来讲有些神奇

test = 1, 2
test += 12, 34

乍一看完全懵逼,不知道是为啥

对于我 来说,看见不懂的代码,第一时间就是想到在交互命令行来直接执行,瞅着比较直观,何况又是这种简单的代码

 

 执行完之后就一目了然了,但是又有点问题的感觉,tuple数组不是号称是不可变的数据类型么,也就是不能再往里添加元素了啊

 

 再执行如下代码,就恍然大悟了,还是自己理解不够

test = 1, 2 这行代码是给test赋值(1, 2), 只是括弧可以省略

test += 12, 34 这行代码相当于是数组的相加,赋值给一个新的变量(变量名还是test),原有数组并没有变化,只是没有变量指向原有对象(1, 2),应该是被回收了

于是,变量test指向了新的数组(1, 2, 12, 34)

推荐阅读