1、 了解引用
python中一切的传递都是引用(地址),无论是赋值还是函数调用,不存在值传递。
通俗理解变量使用了某个内存地址称为引用该数据的内存地址
提示:变量最终保存的是数据在内存中的一个地址,也就是说变量保存的是内存地址, 数据都是保存在内存里面
内存地址:就是数据在内存中的一个物理位置, 通过内存地址可以在内存中找到对应的数据。
我们可以用id()来判断变量是否为同一个值得引用。我们可以将id值理解为那块内存的地址标识。
# 1. int类型 # 不可变:int:1, 1声明变量保存整型数据,把这个数据赋值到另一个变量,id()检测两个变量的id值(内存的十进制值) a = 1 b = a print(b) # a和b的id值相同的 print(id(a)) # 2511114666224 print(id(b)) # 2511114666224 # 修改a的数据,测试id值 a = 2 print(b) # 因为改变了a的数据,内存要开辟零一份内存取存储2,id检测a和b的地址不同 print(id(a)) # 2481568153872 print(id(b)) # 2481568153840 # 2. 可变类型:列表 aa = [10, 20] bb = aa print(bb) print(id(aa)) # 2656106836032 print(id(bb)) # 2656106836032 aa.append(30) print(bb) # [10, 20, 30] print(id(aa)) # 3155666137152 print(id(bb)) # 3155666137152
2、 引用当作实参
# 需求:引用是否可以当作实参 """ 1. 定义函数:有形参 1.1 访问打印形参看是否有数据 1.2 访问心肝的id 1.3 改变形参数据,查看这个形参并打印id,看id值是否相同 2. 调用函数 -- 把可变和不可变两种类型依次当作实参传入 """ def test1(a): print(a) print(id(a)) a += a print(a) print(id(a)) b = 10 test1(b) c = [20, 30] test1(c)
3、 可变和不可变类型
所谓可变类型和不可变类型是值:数据直接能够进行修改,如果能直接修改那么就是可变,否则是不可变
可变类型:
列表、字典、集合
不可变类型:
整形、浮点型、字符串、元组
标签:aa,bb,内存,print,内存地址,id,引用 From: https://www.cnblogs.com/yz-b/p/16706187.html