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

Python中的参数传递方式有哪几种?

发布时间:2023-07-04 03:08:21

Python中的参数传递方式有以下几种:

1. 值传递(Pass-by-value):

值传递是指将参数的值复制一份后传递给函数,函数内部对参数的操作不会影响到原始值。Python中的数字、字符串和元组都是不可变的,所以它们都是通过值传递进行参数传递。

示例:

def func(x):
    x += 10
    return x

num = 5
result = func(num)
print(num)      # 输出:5
print(result)   # 输出:15

2. 引用传递(Pass-by-reference):

引用传递是指将参数的引用(地址)传递给函数,函数内部可以通过引用直接修改原始值。Python中的列表、字典和集合等可变对象是通过引用传递进行参数传递。

示例:

def func(arr):
    arr.append(4)
    return arr

my_list = [1, 2, 3]
result = func(my_list)
print(my_list)  # 输出:[1, 2, 3, 4]
print(result)   # 输出:[1, 2, 3, 4]

3. 默认参数:

默认参数是指函数定义时指定的参数默认值,在调用函数时可以不传递该参数。当不传递默认参数时,函数将使用默认值;当传递参数时,函数将使用传递的值。

示例:

def func(x, y=10):
    return x + y

result1 = func(5)
result2 = func(5, 20)
print(result1)  # 输出:15
print(result2)  # 输出:25

4. 关键字参数:

关键字参数是通过指定参数名称进行传递,可以不按顺序传递参数,而是直接指定参数名称和对应的值。

示例:

def func(x, y):
    return x + y

result1 = func(x=5, y=10)
result2 = func(y=10, x=5)
print(result1)  # 输出:15
print(result2)  # 输出:15

5. 可变参数:

可变参数是指函数定义时不确定接受多少个参数,可以使用*args来接收任意数量的非关键字参数,也可以使用**kwargs来接收任意数量的关键字参数。

示例:

def func(*args):
    result = 0
    for num in args:
        result += num
    return result

result1 = func(1, 2, 3)
result2 = func(1, 2, 3, 4, 5)
print(result1)  # 输出:6
print(result2)  # 输出:15

以上是Python中常见的参数传递方式。根据不同的需求和场景,可以灵活选择适当的参数传递方式。