增强赋值语句

all

增强赋值语句先是尽量原处修改,若不能在原处修改则新生成对象
>>> a = b = 1
>>> a += 1
>>> a, b
(2, 1)
>>> a = b = []
>>> a += [1, 2]
>>> a, b
([1, 2], [1, 2])
  1. 上面代码第一次用多目标同值的时候引用的是同一个对象。
  2. 前者修改a只会对a影响而不会影响b,因为整数是不支持原处修改的。
  3. 而后者对a修改后修改了原对象,因为list是支持原处修改。

下面的代码可以验证:

>>> a, b
([], [])
>>> a = a + [1, 2]
>>> a, b
([1, 2], [])

增加赋值是原处修改的,而a = a + [1, 2]不是原处修改,所以a, b不同。

Author: visaya fan

Date: 2011-08-27 00:13:02 CST

HTML generated by org-mode 7.4 in emacs 23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值