python 赋值原理




在python中变量名相当于一个指针,为变量赋值相当于是将指针指向了这个值的内存空间。


那么如果执行foo1=foo2=4.3的时候相当于(参考《Python核心编程》第二版4.5.2)
foo1 = 4.3
foo2 = foo1


按照这种理解,那么是不是如果继续执行
foo1=5.0
foo2 也会变成5.0呢?当然不会。(详细程序验证在下面)
但是,如果变量不是整型呢?
我们执行
foo1=foo2=[1,2,3]
foo1[1]=5
这时候foo2 的值是多少?当然也是[1,5,3](和foo1一样)。为什么呢?
有一种解释:Python在处理整型、字符型的时候使用值传递,所以foo2的值只是和foo1的值相等,但不是同一个内存空间。而在处理浮点型、列表等类型是使用的是地址传递,也就是说foo2和foo1指向的是同一个内存空间。(《Pyt
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值