欢迎访问宙启技术站
智能推送

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=1b=2 来指定参数的值,从而调用函数并返回相加的结果。