值传递和引用传递
在Python中值传递和引用传递的判断是根据你传入数据类型而判断的
如果你传入的参数对象是可变对象:列表,字典,这个时候就是引用传递,如果参数在函数体内被修改,那么源对象也会被修改。
如果你传入的参数对象是不可变的对象:数字,元组,字符串,这个时候就是值传递。那么源对象是不会改变的。
其实他们最大的区别就是:
在值传递中,不改变参数的值,而在引用传递中,参数的值是被改变的。
案例1:
def test(a, b):
a = 10
b[0] = 20
a = 100
b = [100,200,300]
test(a, b)
print(a, b)
这里我们可以看出a作为一个数字,他的值没有发生变化,这就是值传递,而b的值明显发生的变化,显然是引用传递