注意点:
-
就地修改: 使用
+=
会就地修改可变对象,如列表或字典,而不是创建一个新的对象。这意味着原始对象会被改变。 -
与+运算符的区别:
+=
与+
运算符不同。对于不可变对象(如字符串、元组等),+=
通常会创建一个新对象,而不是就地修改。 -
可变对象 vs 不可变对象: 对于可变对象(如列表、字典),
+=
会就地修改原始对象,而对于不可变对象(如字符串、元组),+=
通常会创建一个新对象。 -
可读性: 对于可变对象,
+=
可以更高效,但有时会损害可读性。如果改变原始对象可能会导致混乱,你可以考虑创建一个新的对象并使用赋值操作符。
一个易发生错误的案例:
a是一个列表,比如a = [1, 2, 3]
,当将a作为实际参数传入某个函数内时,比如进行了赋值:b=a
,如果b执行了b+=[1]
,那么函数外的a也会变成[1, 2, 3, 1]