python中int、str和tuple都是不可变类型,list和dict是可变类型
不可变类型的
思考如下问题:
1 | a = 1 |
答案是 1
int 为不可变类型,虽然b=a将b指向了1的内存,但是b=2又分配了一块内存,所以a的指向并没有变,所以a为1.可以通过id()方法看查一下内存地址。
同理tuple也是一样。
可变类型
对于可变类型,思考如下问题:1
2
3
4a = [1,2,3]
b = a
b.append(4)
a = ?
因为数组是可变的,b.append(4)将4添加到数组中,所以a的值为[1,2,3,4]
1 | a = [1,2,3] |
这里同不可变类型原理一样,重新分配了内存,故a=[1,2,3]