python中"+="的注意点

作者: Mouse_Hang | 来源:发表于2019-06-30 10:05 被阅读56次

我们知道在函数中如果对形参使用赋值语句是不会修改实参的,但是如果传入的实参是可变类型,而且使用方法修改了形参,那么实参也会被修改。

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

相关文章

网友评论

    本文标题:python中"+="的注意点

    本文链接:https://www.haomeiwen.com/subject/yuvvcctx.html