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

“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中可变类型传递是传引用的方式,不可变类型传递是传值的方式。需要注意的是,在函数中对可变类型进行操作会影响原来的值,而对不可变类型进行操作则不会影响原来的值。