为了账号安全,请及时绑定邮箱和手机立即绑定

list .__ iadd__和list .__ add__的不同行为

list .__ iadd__和list .__ add__的不同行为

动漫人物 2019-08-13 17:03:11
list .__ iadd__和list .__ add__的不同行为考虑以下代码:>>> x = y = [1, 2, 3, 4]>>> x += [4]>>> x[1, 2, 3, 4, 4]>>> y[1, 2, 3, 4, 4]然后考虑这个:>>> x = y = [1, 2, 3, 4]>>> x = x + [4]>>> x[1, 2, 3, 4, 4]>>> y[1, 2, 3, 4]为什么这两个有区别?(是的,我试着寻找这个)。
查看完整描述

2 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

__iadd__改变列表,然后__add__返回一个列表,如图所示。

一个表达式x += y首先尝试调用,__iadd__并且在调用失败后,调用__add__遵循一个赋值(请参阅Sven的注释以进行小修正)。既然list__iadd__那么它Ø突变魔术这一点”。


查看完整回答
反对 回复 2019-08-13
?
侃侃无极

TA贡献2051条经验 获得超10个赞

第一个改变列表,第二个重新命名。


查看完整回答
反对 回复 2019-08-13
  • 2 回答
  • 0 关注
  • 770 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信