python 变量指向的地址,以及用copy改变变量的地址

在学习一门语言中, 对地址的理解非常重要; 

先看一个简单的例子:

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
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值