Python 赋值语句全解析
1. 多目标赋值
多目标赋值是将所有给定的名称都指向最右边的对象。例如:
>>> a = b = c = 'spam'
>>> a, b, c
('spam', 'spam', 'spam')
这种形式等同于以下三个赋值语句,但编码更简便:
>>> c = 'spam'
>>> b = c
>>> a = b
不过,要注意这里只有一个对象,所有变量都指向内存中的同一个对象。对于不可变类型,这种共享引用没问题,比如初始化一组计数器为零:
>>> a = b = 0
>>> b = b + 1
>>> a, b
(0, 1)
因为数字不支持原地修改,改变 b 只会影响 b 。但当初始化变量为可变对象(如列表或字典)时,就需要更谨慎:
>>> a = b = []
>>> b.append(42)
>>> a, b
([42], [42])
为避免这种共享引用问题,应在单
超级会员免费看
订阅专栏 解锁全文
14万+

被折叠的 条评论
为什么被折叠?



