Python有趣的现象——x+=y VS x=x+y
2017-06-28 20:42
246 查看
对于列表,有以下现象:
这是因为+=操作符会调用__iadd__方法,只有在没有该方法时才会调用__add__方法。__iadd__方法会在原对象上进行更新。+操作符调用的是__add__方法,不修改原对象,返回新的对象。
>>>x = [1,2,3] >>>y=x >>>x += [4] >>>x [1,2,3,4] >>>y [1,2,3,4] >>>x = x+[5] >>>x [1,2,3,4,5] >>>y [1,2,3,4]
这是因为+=操作符会调用__iadd__方法,只有在没有该方法时才会调用__add__方法。__iadd__方法会在原对象上进行更新。+操作符调用的是__add__方法,不修改原对象,返回新的对象。
相关文章推荐
- python中修改类定义的有趣现象
- 飘逸的python - 中文编码长度有趣的现象
- python 多线程编程的有趣的现象
- Python 中 and 和 or 的有趣现象
- 飘逸的python - 中文编码长度有趣的现象
- python 多线程编程的有趣的现象02
- 脚本语言比较:CSE vs Python
- 有趣现象
- [图片]Ruby vs Python
- PHP与Python的比较 (PHP vs Python)
- 在使用Struct时发现了一个有趣的现象;)[提醒Struct使用]
- 不知道是不是VS的bug还是MSI的bug!!VS2003.net打包安装程序的怪现象
- [有趣的Python 8]使用C模块来提高性能 [转]
- MSComm控件的有趣现象
- C#中有趣的的四舍五入现象和一个简单的解决方案
- CFile类打开文件的有趣现象
- 收集的一些python程序,实用并且有趣
- CFile类打开文件的有趣现象
- CFile类打开文件的有趣现象
- 阶乘运算之Python VS Java