在python中,值是靠引用来传递的
可以用id()来判断两个变量是否为同一值的引用。
一 .不可变类型:
不可变类型有:整型,浮点型,字符串,元组。
# 可变和不可变
# 1, 不可变:int:1.1声明变量保存整形数据,把这个数据赋值到另一个变量
# id()检测两个变量的id值
a = 1
b = a
print(id(a))
print(id(b))
# 修改a的数据测试id值
a = 2
print(a)
print(b)
print(id(a))
print(id(b))
编译结果:
140713954629280
140713954629280
2
1
140713954629312
140713954629280
开始我们把数值1开辟了内存空间,然后把1赋值给了a,即内存指向为a,然后a又赋值给了b,即a又指向b,所以内存空间地址是一样的,即id值一样
之后我们又拿出了数值2开辟了内存空间,然后把2赋值给了a,即2的内存指向为a,当再打印a是就不是原来1的内存地址,而是2的内存地址。
二 . 可变类型(列表)
可变类型有:列表,字典,集合。
# 1. 可变类型: 列表
aa = [10, 20]
bb = aa
print(id(aa))
print(id(bb))
aa.append(30)
print(aa)
print(id(aa))
print(id(bb))
编译结果:
1392384957504
1392384957504
[10, 20, 30]
1392384957504
1392384957504
有编译结果可以得出,可变类型数据实在原内存空间进行更改的,是没有另外开辟内存空间。