Python中 为何`i+=x` 和`i=i+x`有不相等的情况
对于对象x,操作符+的定义在其对象的__add__方法中已经定义好了。操作符+=在__iadd__方法中也以定义好了,如果没有定义__iadd__方法,解释器会将x+=y,翻译为x = x+y进行运算。具体到本问题而言,list对象中两个list相加会创建新的list。而list1 += list2 相当于在原来的list1上进行修改,即将list2中的元素依次append到list1的尾部。没事儿多看看源码。
■网友
i=i+x相当于i=i.__add__(x)i+=x相当于i=i.__iadd__(x)调用的方法不同,可以参考反向运算和增量赋值
■网友
想到了js里的push跟concat
推荐阅读
- #补贴#江阴为何迟迟没执行?|解忧帮 无锡:机动车报废有补贴
- OC为何跌出语言榜前十
- 怎样成为一名合格的Python程序员?
- 何能|布局素质教育 教育巨头为何能迅速推进?
- python 爬虫,咋获得输入验证码之后的搜索结果
- 汽车|把车越卖越贵,全新领克01为何可以这样?
- 阿里程序员网上招人的情况为何如此多见
- 心流西春|为何你的后半箱油总是不耐用?油是正经油,问题可能出在这里
- 一粒尘埃的尘|为何很多新车不再设计“雾灯”,雾灯不重要吗?
- 环球车讯网|宝马MINI 为何在“迷你”的路上越跑越远?