Python中的函数参数传递(Function Parameter Passing in Python)
发布时间:2023-09-17 13:49:49
在Python中,函数参数传递的方式有两种:传值调用(call by value)和传引用调用(call by reference)。
1. 传值调用(call by value):
传值调用指的是将实际参数的值复制给形式参数,在函数内部对形式参数的修改不会影响到实际参数。这种方式在Python中被称为不可变参数的传递,包括数字、字符串、元组等。
示例代码如下:
def change_value(x):
x = 2
num = 1
change_value(num)
print(num) # 输出 1
在上述示例中,函数内部将形式参数 x 的值修改为2,但是对实际参数 num 没有任何影响。
2. 传引用调用(call by reference):
传引用调用指的是将实际参数的引用传递给形式参数,在函数内部对形式参数的修改会影响到实际参数。这种方式在Python中被称为可变参数的传递,包括列表、字典等。
示例代码如下:
def change_list(lst):
lst.append(2)
my_list = [1]
change_list(my_list)
print(my_list) # 输出 [1, 2]
在上述示例中,函数内部通过 append 方法将新的元素添加到了形式参数 lst 所引用的列表中,这个修改同样影响了实际参数 my_list。
需要注意的是,对于不可变参数来说,即使在函数内部对形式参数进行了修改,实际参数仍然不会被改变。这是因为对于不可变类型的对象,改变对象的值等于创建了一个新的对象。
此外,Python还支持通过关键字参数来给函数传递参数,这种方式可以使得参数的传递更加清晰和灵活。关键字参数可以指定参数的名称,并按照参数的顺序传递。
示例代码如下:
def add_numbers(a, b):
return a + b
print(add_numbers(a=1, b=2)) # 输出 3
上述代码中,通过关键字参数 a=1 和 b=2 来指定参数的值,从而调用函数并返回相加的结果。
