在学习一门语言中, 对地址的理解非常重要;
先看一个简单的例子:
a = [1,2,3] b = a # 将a的地址赋值给b, 当调用b时, 相当于调用a的地址中的数据 print(id(a)) # id()函数是用来查看变量的地址的 print(id(b))
输出结果:
1657400812040
1657400812040
从输出结果可以知道, a,b的地址相同;
但是, 任何一门语言中, 一个地址只能存放一个变量;
故: 1657400812040是a的地址, 而不是b的地址; 变量b是指向a的地址 ,b并不占用地址;
那么如何让变量b有存储地址呢? 那就是用copy()函数
a = [1,2,3] b = a.copy() # 将a存储的数据 复制给了b, b将数据保存在自己的地址里 print(id(a)) print(id(b))
输出结果:
2106678796808
2106678796872
def fo(num): return num + 1 print(id(fo)) def ba(): print("ba") print(id(ba)) fo = ba # fo指向bar的地址, 即foo的地址就是bar的地址 fo() print(id(fo))
输出结果:
1982214132872
1982214133008
ba
1982214133008