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

Python函数的参数传递方式及示例

发布时间:2023-12-03 14:44:41

Python函数的参数传递方式有两种:按值传递和按引用传递。

按值传递:

按值传递是指在函数调用过程中,将实际参数的值复制一份传递给形式参数。这样,在函数内部对形式参数进行修改不会影响实际参数的值。

示例代码:

def change_num(num):
    num = num + 1

a = 10
change_num(a)
print(a)  # 输出结果为10

在这个示例中,我们定义了一个函数change_num,它有一个参数num。在调用change_num函数时,我们传递了一个变量a作为实际参数。在函数内部,将num加1,但是并没有改变a的值。因为函数参数是按值传递的,相当于在函数内部创建了一个新的变量num,并将a的值赋给它,所以对num的修改不会影响到a。

按引用传递:

按引用传递是指在函数调用过程中,实际参数的引用传递给形式参数,形式参数和实际参数引用的是同一个对象。这样,在函数内部对形式参数进行修改会改变实际参数的值。

示例代码:

def change_list(lst):
    lst.append(4)

my_list = [1, 2, 3]
change_list(my_list)
print(my_list)  # 输出结果为[1, 2, 3, 4]

在这个示例中,我们定义了一个函数change_list,它有一个参数lst。在调用change_list函数时,我们传递了一个列表my_list作为实际参数。在函数内部,我们对lst进行了修改,向其中添加了一个元素4。由于函数参数是按引用传递的,所以对lst的修改也会影响到my_list。

需要注意的是,虽然Python的函数参数是按引用传递的,但是对于不可变数据类型(如整数、字符串等),如果在函数内部对参数进行修改,会创建一个新的对象,而不会影响到实际参数的值。只有对于可变数据类型(如列表、字典等),才会对实际参数进行修改。

总结:

Python函数的参数传递方式有按值传递和按引用传递两种。按值传递是将实际参数的值复制一份传递给形式参数,对形式参数的修改不会影响实际参数。按引用传递是将实际参数的引用传递给形式参数,对形式参数的修改会改变实际参数的值。需要注意的是,在Python中,对于不可变数据类型,函数内部对参数的修改不会影响实际参数的值,只有对于可变数据类型,才会对实际参数进行修改。