Python-为什么要将元组设计成不可变序列?
在多任务环境下,同时操作对象时不需要加锁,
因此,在程序中尽量使用不可变序列。
注意事项:元组中存储的是对象的引用
1、如果元组中对象本身是不可变对象,则不能再引用其他对象
2、如果元组中对象本身是可变对象,虽然可变对象的引用不允许改变,但是数据可以改变。
1 t = (10, [20, 30], 9) 2 print(t) 3 print(type(t)) 4 for item in t: 5 print(item, type(item), id(item)) 6 '''尝试将t[1]修改为100''' 7 print(id(100)) 8 # t[1] = 100 报错TypeError: 'tuple' object does not support item assignment 9 '''由于[20, 30]是列表,而列表是可变序列,所以可以向列中添加元素,而列表的内存地址不变''' 10 t[1].append(100) #向列表中添加元素 11 print(t, id(t[1]))