“Python中的参数传递方式有哪些?”
发布时间:2023-05-24 19:36:39
Python中参数传递方式主要有两种:传值和传引用。
1. 传值
传值即将函数调用时实参的值复制一份传递给函数,在函数中对实参进行操作不会影响到原来的实参。
示例代码:
def change_num(num): num = num + 1 return num n = 5 print(n) # 输出5 print(change_num(n)) # 输出6 print(n) # 输出5
在上面的代码中,函数change_num接收一个参数num,将其加1后返回。在调用change_num之前,变量n的值为5,调用函数后,变量n的值并未改变。
2. 传引用
传引用即将函数调用时实参的引用传递给函数,在函数中对实参进行操作会影响原来的实参。
示例代码:
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,将4附加到该参数指向的列表中。在调用change_list之前,我们创建了一个名为my_list的列表,包含1、2、3三个元素。调用函数后,my_list的值变为[1, 2, 3, 4]。
需要注意的是,Python中的不可变类型,如数字、字符串、元组等,传递是传值的方式,所以在函数内对它们的操作不会影响原来的值。
示例代码:
def change_str(s): s = s + ' World' return s my_str = 'Hello' print(change_str(my_str)) # 输出'Hello World' print(my_str) # 输出'Hello'
在上面的代码中,函数change_str接收一个参数s,在其后面拼接一个字符串,然后返回该字符串。在调用change_str之前,我们定义了一个名为my_str的字符串变量,其值为'Hello'。调用函数后,change_str返回的字符串为'Hello World',但是my_str的值仍为'Hello'。
总结:
Python中参数传递方式主要有两种:传值和传引用。一般情况下,Python中可变类型传递是传引用的方式,不可变类型传递是传值的方式。需要注意的是,在函数中对可变类型进行操作会影响原来的值,而对不可变类型进行操作则不会影响原来的值。
