i=i+1是否等同于i+=1

说明:增强型赋值语句是经常使用到的,那么我们是否想过i=i+1是否等同于i+=1呢?话不多说,一段代码压压惊.

 1 b = [1, 2, 3]
 2 print("b未改变的地址:", id(b))
 3 b += [4, 5, 6]
 4 print("b已改变的地址:", id(b))
 5 print("b的结果:", b)
 6 print("--------------------------")
 7 
 8 a = [1, 2, 3]
 9 print("a未改变的地址:", id(a))
10 a = a +  [4, 5, 6]
11 print("a已改变的地址:", id(a))
12 print("a的结果:", a)

是否和你想的是一致的呢?虽然结果是一样的,但意义是不一样的.

 

从这里可以看出例二中普通赋值语句发生新内存创建现象,更加说明了一个观点,增强型赋值语句效率高于普通赋值语句.这是因为在python源码中,增强赋值比普通赋值多实现了"写回"功能,也就是说增强赋值语句会以追加的方式进行数据处理,而普通赋值语句会以新的内存创建方式处理数据.

 

posted @ 2018-05-01 20:47  六师兄丶  阅读(590)  评论(0编辑  收藏  举报