对于不可变对象(imutable object)如tuple, +=则是等价于a = a+b 会产生新的变量,然后绑定到a上而已...., 也就是我们平时说的元素不能改变, 实际上从报错信息TypeError: 'tuple' object does not support item assignment来看, 更准确的说法是指其中的元素不支持赋值操作...(在由一个例子到python的名字空间 中指出了赋值操作=就是创建新的变量), 因此s[2]=[50,60]就会抛出异常....>> a
(1, 2, [30, 40, 50, 60])
>>> id(a[2])
140628739513736
目前解决了第二个和第三个问题, 先梳理一下, 其实就是两点:
tuple内部的元素不支持赋值操作...现在用一句话总结下:
tuple中元素不支持assign操作,但是对于那些是可变对象的元素如列表,字典等,在没有assign操作的基础上,比如一些in-place操作,是可以修改内容的
可以用第四个问题来简单验证一下