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

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

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

PHP
鸿蒙传说 2019-12-02 08:04:54
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 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

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

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


查看完整回答
反对 回复 2019-12-03
?
跃然一笑

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

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

查看完整回答
反对 回复 2019-12-03
  • 2 回答
  • 0 关注
  • 345 浏览

添加回答

举报

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