Python函数的参数传递方式及示例
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中,对于不可变数据类型,函数内部对参数的修改不会影响实际参数的值,只有对于可变数据类型,才会对实际参数进行修改。
