#为什么要将元组设计成不可变序列
#为什么要将元组设计成不可变序列
#1.多任务环境下,同时操作对象时时不需要加锁
#因此,在程序中尽量使用不可变序列
#注意事项:元组中存储的是对象的引用
# 1.如果元组中存储的对象本身是不可变对象,则不能在引用其它对象
# 2.如果元组中的对象是可变对象,则可变对象的引用不允许改变(元组不允许修改元素),但数据可以改变
#为什么要将元组设计成不可变序列
#为什么要将元组设计成不可变序列
#1.多任务环境下,同时操作对象时时不需要加锁
#因此,在程序中尽量使用不可变序列
#注意事项:元组中存储的是对象的引用
# 1.如果元组中存储的对象本身是不可变对象,则不能在引用其它对象
# 2.如果元组中的对象是可变对象,则可变对象的引用不允许改变(元组不允许修改元素),但数据可以改变
#t=(10,[20,30],9)
#10,9整数,整数是不可变对象
#[20,30]列表,可变对象
#t[1]=100错误。元组中存储的是对象的引用,可变对象的引用不允许改变
#t[1].append(100) 但数据可以改变
############################################
t=(10,[20,30],9)
print(t,type(t))
print(t[0],type(t[0]))#获取元组中的元素
print(t[1],type(t[1]),id(t[1]))
print(t[2],type(t[2]))
'''由于[20,30]是列表,而列表是可变序列,所以可以向列表中添加元素,而列表的内存地址不变'''
t[1].append(100)
print(t,id(t[1]))