本文共 444 字,大约阅读时间需要 1 分钟。
t=(1,2,[30,40])
t[2]+=[50,60]Traceback (most recent call last):File "<stdin>", line 1, in <module>TypeError: 'tuple' object does not support item assignmentt(1, 2, [30, 40, 50, 60])
#说明: 1、一般不要把可变对象放在元组里面 2、增量赋值不是一个原子操作,即t[2]修改成功,t修改失败 3、+= 优先调用 _iadd_方法,在没有这个方法的前提下调用_add_方法, _iadd_方法在原有对象的基础上进行就地加法运算,_add_ 会新建一个对象储存结果,不会影响原始数据 4、针对以上的情况可以使用:extend方法来避免错误的发生,即 t[2].extend([50,60])
转载于:https://blog.51cto.com/11089980/2357914