6.3 增量赋值的性能更好 ====================== .. image:: http://image.iswbm.com/20200804124133.png 诸如 ``+=`` 和 ``*=`` 这些运算符,叫做 增量赋值运算符。 这里使用用 += 举例,以下两种写法,在效果上是等价的。 .. code:: python # 第一种 a = 1 ; a += 1 # 第二种 a = 1; a = a + 1 ``+=`` 其背后使用的魔法方法是 ``__iadd__``\ ,如果没有实现这个方法则会退而求其次,使用 ``__add__`` 。 这两种写法有什么区别呢? 用列表举例 a += b,使用 ``__add__`` 的话就像是使用了a.extend(b),如果使用 ``__add__`` 的话,则是 a = a+b,前者是直接在原列表上进行扩展,而后者是先从原列表中取出值,在一个新的列表中进行扩展,然后再将新的列表对象返回给变量,显然后者的消耗要大些。 所以在能使用增量赋值的时候尽量使用它。