Python里面的list是可变类型,在函数内部使用+=运算符的时候,相当于调用list.extent()方法,会修改实参list的值。
def change(gl_list):
gl_list += gl_list
print("函数内部的值:")
print(gl_list)
if __name__ == '__main__':
gl_list = [1, 2, 3, 4]
change(gl_list)
print("函数外部的值:")
print(gl_list)
输出为:
函数内部的值:
[1, 2, 3, 4, 1, 2, 3, 4]
函数外部的值:
[1, 2, 3, 4, 1, 2, 3, 4]
在函数内部使用=运算符,并不会改变实参list的值。
def change(gl_list):
gl_list = gl_list + gl_list
print("函数内部的值:")
print(gl_list)
if __name__ == '__main__':
gl_list = [1, 2, 3, 4]
change(gl_list)
print("函数外部的值:")
print(gl_list)
输出为:
函数内部的值:
[1, 2, 3, 4, 1, 2, 3, 4]
函数外部的值:
[1, 2, 3, 4]
补充:Python里面,不管是传入可变类型还是不可变类型,在函数内部使用=运算符,并不会修改传入实参的值。使用Python内置方法,会修改传入参数的值。