python中"+="的注意点
2019-06-30 本文已影响56人
Mouse_Hang
我们知道在函数中如果对形参使用赋值语句是不会修改实参的,但是如果传入的实参是可变类型,而且使用方法修改了形参,那么实参也会被修改。
def demo_04(lo_list):
lo_list.append(5)
print(lo_list)
gl_list = [1, 2, 3, 4]
demo_04(gl_list) # 输出为:[1, 2, 3, 4, 5]
print(gl_list) # 输出为:[1, 2, 3, 4, 5]
在平常我们使用“+=”时,例如:a += a表示先进行a + a操作,再将a + a的和赋值给a,即a = a + a。但是在python中需要注意当列表使用“+=”时,相当于使用了extend()方法扩展列表,而不是先求和再赋值。
def demo_04(lo_list):
lo_list += lo_list
print(lo_list)
gl_list = [1, 2, 3, 4]
demo_04(gl_list) # 输出为:[1, 2, 3, 4, 1, 2, 3, 4]
print(gl_list) # 输出为:[1, 2, 3, 4, 1, 2, 3, 4]
通过输出结果可看出在函数中 列表执行该步代码lo_list += lo_list,并不是先求和再赋值,而是相当于使用了extend()方法。