python中可变参数函数

  • Post category:Python

Python中的可变参数方法允许函数在参数不确定的情况下进行调用。在函数中,使用 args 和 *kwargs 可以传递多个参数,这些参数在函数内部可以作为列表或字典进行操作。

*args

*args 是用于将参数打包成元组(tuple)的方法。在函数中使用 *args 表示可以传入任意数量的位置参数,如下所示:

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

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

在上面的例子中,*args 接收多个位置参数(1, 2, 3),并将它们打包成一个元组,然后可以通过循环遍历获取每个参数的值进行计算。

**kwargs

**kwargs 是用于将参数打包成字典(dict)的方法。在函数中使用 **kwargs 表示可以传入任意数量的关键字参数,如下所示:

def person(**kwargs):
    for k, v in kwargs.items():
        print(k + ': ' + v)

person(name='Tom', age='18', gender='male')
# 输出 name: Tom, age: 18, gender: male

在上面的例子中,**kwargs 接收多个关键字参数(name=’Tom’, age=’18’, gender=’male’),并将它们打包成一个字典,然后可以通过循环遍历获取每个参数的键值对进行输出。

当然,*args**kwargs 也可以同时使用。如下所示:

def func(*args, **kwargs):
    print(args)
    print(kwargs)

func(1, 2, 3, name='Tom', age=18)
# 输出 (1, 2, 3)
#      {'name': 'Tom', 'age': 18}

在上面的例子中,func() 方法中同时接收了多个位置参数和关键字参数,并将其打包成元组 args 和字典 kwargs 用于后续操作。

这就是 Python 可变参数函数的攻略,通过使用 *args**kwargs 进行参数的灵活传递,可以在不改变函数定义的前提下,提高函数的通用性和灵活性。