python系列教程137——多目标赋值

网友投稿 266 2022-11-06


python系列教程137——多目标赋值

下面这种写法叫说多目标赋值语句:

>>> 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])

这一次,因为a和b引用相同的对象,通过对b进行操作,a也会看见所有的效果。为避免这个问题,要在单独的语句中初始化可变对象:

>>> a = []>>> b = []>>> b.append(42)>>> a,b([],[42])


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:成都公交查询API(成都公交查询8684)
下一篇:Python数据分析与应用 ---- 航空公司客户价值分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~