python交流区工作生活

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()方法。

上一篇 下一篇

猜你喜欢

热点阅读