无论函数传递的参数的可变还是不可变,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用,而如果传递的参数是可变类型,在函数内部使用方法修改了数据的内容,同样会影响到外部的数据。
def demo(num, num_list): print("函数内部") num = 99 num_list = [33, 66, 99] print(num, num_list) gl_num = 9 gl_list = [3, 6, 9] demo(gl_num, gl_list) print(gl_num, gl_list)
运行结果:
def mutable(num_list): num_list.append(100) print(num_list) gl_list = [1, 2, 3] mutable(gl_list) print(gl_list)
运行结果:
无论函数传递的参数的可变还是不可变,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用,而如果传递的参数是可变类型,在函数内部使用方法修改了数据的内容,同样会影响到外部的数据。