python中, 参数是可变参数时, 如果在函数中修改了参数, 那么全局变量会被修改
注意: 这里将的是通过参数传入
def demo(num_list):
print("函数内部")
num_list.append(9)
print(num_list) #修改了num_list
print("函数执行完毕")
gl_list = [1,2,3]
demo(gl_list)
print(gl_list)
执行后的结果如下:
函数内部
[1, 2, 3, 9]
函数执行完毕
[1, 2, 3, 9]
ps: 对于列表变量, 使用 += 操作时, 不会做相加再赋值, 而是列表的 extend 方法, 且不会修改变量的引用
def demo(num_list):
print("函数内部")
num_list += num_list #相当于num_list.extend(num_list)
print(num_list)
print("函数执行完毕")
gl_list = [1,2,3]
demo(gl_list)
print(gl_list)
执行结果是:
函数内部
[1, 2, 3, 1, 2, 3]
函数执行完毕
[1, 2, 3, 1, 2, 3]