python共享对象

1. 可变对象为列表时:
a=[3,2]
b=a
a=a+[4]  #重新创建的一个新对象、[2,3,4],所以b 不会变
# a[0]=5   在原处修改列表值,此时b 会变
print(a,b)

如果不想在别处改变这个对象,则b可以采用分片方式得到与a 一样的值。非序列如字典可以通过拷贝方法得到与a一样的值

2.不可变对象为整数时,无法改变原值,只能重新创建对象

a=3

a=b

a=a+2

print(a,b)

变量是指针,a=3,a=b ,则a,b 共同指向同一个对象的内存空间,这个对象内存空间是通过创建3得到的。这个叫共享对象。当继续执行a=a+2 时,b 的值不会变,是因为给一个变量赋予新的值时,并不是替换了原始的对象3,因为整数是不可变的,而是让这个变量去引用完全不同的一个对象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值