python中"+="的注意点

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容