Python函数的参数与返回值传递方式
Python函数的参数与返回值传递方式
在Python中,函数的参数与返回值可以通过多种方式进行传递。本文将介绍Python函数参数传递的方式,包括传值和传引用,以及Python函数的返回值传递方式。
1. 传值传递方式
传值传递方式是指将参数的值复制一份,传递给函数内部使用,而不影响原始参数的值。在Python中,基本数据类型(int、float、bool等)都采用传值传递方式传递参数。
示例代码如下:
def change_num(num):
num = 10
print("函数内部修改后的值: ", num)
num = 5
change_num(num)
print("函数外部原始值: ", num)
输出结果为:
函数内部修改后的值: 10 函数外部原始值: 5
可以看到,函数内部修改后的值不会影响函数外部原始值。
2. 传引用传递方式
传引用传递方式是指将参数的引用传递给函数,在函数内部对参数进行修改会影响原始参数的值。在Python中,列表(list)、字典(dict)和集合(set)等都是采用传引用传递方式传递参数。
示例代码如下:
def change_list(list):
list.append(4)
lst = [1, 2, 3]
change_list(lst)
print("函数外部修改后的列表: ", lst)
输出结果为:
函数外部修改后的列表: [1, 2, 3, 4]
可以看到,函数内部对列表进行的修改影响了函数外部原始列表。
3. 返回值传递方式
Python函数可以使用return语句返回一个或多个值。返回值传递方式指的是将函数的返回值传递给调用者。
示例代码如下:
def sum(a, b):
return a + b
result = sum(1, 2)
print("函数返回值为: ", result)
输出结果为:
函数返回值为: 3
可以看到,函数的返回值被赋值给变量result,并可以在函数外部使用。
4. 传递不可变对象和可变对象
在Python中,不可变对象和可变对象的参数传递方式略有不同。不可变对象包括数字、字符串和元组等,它们的值在传递给函数后不可改变。可变对象包括列表、字典和集合等,可以在函数内部进行修改。
示例代码如下:
def change_string(s):
s = "hello world"
string = "hello"
change_string(string)
print("函数外部原始字符串: ", string)
def change_list(list):
list.append(4)
lst = [1, 2, 3]
change_list(lst)
print("函数外部修改后的列表: ", lst)
输出结果为:
函数外部原始字符串: hello 函数外部修改后的列表: [1, 2, 3, 4]
可以看到,对不可变对象进行的修改不会影响原始对象,而对可变对象进行的修改则会影响原始对象。
总结:
Python函数的参数传递方式包括传值和传引用,其中传值适用于不可变对象,传引用适用于可变对象。函数的返回值可以通过return语句传递给调用者。了解参数和返回值的传递方式对于编写正确的函数和理解函数的工作原理很重要。
