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
进行参数的灵活传递,可以在不改变函数定义的前提下,提高函数的通用性和灵活性。