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

Python函数的可变参数及其使用方法

发布时间:2023-07-04 05:50:40

可变参数是指函数的形参可以接收任意数量的实参。在Python中,可以通过在形参前面加上一个星号(*)来表示可变参数。使用可变参数的好处是可以很方便地处理不确定数量的实参,避免了需要多次定义函数的麻烦。

使用可变参数有两种方式:使用元组参数和使用字典参数。

1. 使用元组参数:

当形参前面的星号(*)只有一个时,表示接收元组类型的实参。

例如,定义一个求和函数sum_nums,可以接受任意数量的参数并计算它们的和:

def sum_nums(*nums):
    result = 0
    for num in nums:
        result += num
    return result

调用这个函数可以传入任意数量的参数:

print(sum_nums(1, 2, 3))  # 输出:6
print(sum_nums(1, 2, 3, 4, 5))  # 输出:15

2. 使用字典参数:

当形参前面的星号(*)有两个时,表示接收字典类型的实参。

例如,定义一个打印用户信息的函数print_user_info,可以接受任意数量的关键字参数,并打印出来。

def print_user_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

调用这个函数时可以传入任意数量的关键字参数:

print_user_info(name='Alice', age=25)  # 输出:name: Alice  age: 25
print_user_info(name='Bob', gender='male', occupation='engineer')  # 输出:name: Bob  gender: male  occupation: engineer

需要注意的是,函数的可变参数可以和其他的普通参数一起使用,但是可变参数必须放在普通参数的后面。

例如,下面的函数定义是合法的:

def example(a, b, *c, d=1, **e):
    pass

但是下面的函数定义是不合法的:

def example(*a, b):
    pass

通过使用函数的可变参数,我们可以处理不确定数量的实参,使代码更加灵活和易用。同时,使用可变参数也可以避免定义过多的函数,提高了代码的复用性和可维护性。