📅  最后修改于: 2023-12-03 15:19:10.302000             🧑  作者: Mango
在 Python 中,参数传递分为两种方式:值传递和引用传递。值传递是指将实参的值复制一份,然后传递给形参,函数内部针对形参的修改不会影响实参的值。而引用传递则是指将实参的内存地址传递给形参,函数内部对形参的修改会直接影响到实参的值。
那么在 Python 中,是通过值传递还是引用传递呢?答案是:引用传递。
下面让我们来看两个例子。
def test1(a):
print("a 的初始值为:", a)
a = 10
print("a 的修改后的值为:", a)
b = 5
test1(b)
print("经过函数调用,b 的值为:", b)
上述代码的执行结果如下:
a 的初始值为: 5
a 的修改后的值为: 10
经过函数调用,b 的值为: 5
从上面的例子可以看出,调用函数时,函数内部对参数的修改不会影响到实参的值,我们可以得出结论:Python 中的参数传递采用值传递。
def test2(lst):
print("lst 的初始值为:", lst)
lst.append(4)
print("lst 的修改后的值为:", lst)
my_list = [1, 2, 3]
test2(my_list)
print("经过函数调用,my_list 的值为:", my_list)
上述代码的执行结果如下:
lst 的初始值为: [1, 2, 3]
lst 的修改后的值为: [1, 2, 3, 4]
经过函数调用,my_list 的值为: [1, 2, 3, 4]
从上面的例子可以看出,调用函数时,函数内部对参数的修改会直接影响到实参的值,我们可以得出结论:Python 中的参数传递采用引用传递。
综上所述,Python 是通过引用传递来传递参数的,但是对于不可变类型的参数,函数内部对其进行修改后,不会影响到实参的值。而对于可变类型的参数,则会直接影响到实参的值。