赋值或传递参数的时候,是原对象的引用,可分为可变对象、不可变对象,可变对象的内容是可变的,例如list。而不可变的对象则相反,表示其内容不可变。
可变对象:list、dict,即使用list[],dict[]、.append()修改内部子项的时候,内存变量被修改,外部函数变量、全局变量也跟着修改,但内存地址没有变化
不可变对象:str、tuple,int
a = []
b = a
print id(a)
print id(b)
a.append(1)
print id(a)
print b
print id(b)
b = 1
print id(b)
b += 1
print id(b)
75687176
75687176
75687176
[1]
75687176
49046872
49046848
上面例子,list内存内容变了,但是内存地址始终没有变化,int内存地址有变化
网友评论