Python 函数参数 *args 和 **kwargs 的区别及使用
*args 的基本概念
*args 用于传递可变数量的位置参数。
def sum_numbers(*args):
return sum(args)
在这个例子中,sum_numbers
可以接受任意数量的参数,返回它们的总和。
使用 *args
我们可以调用 sum_numbers
,传入不同数量的参数。
print(sum_numbers(1, 2, 3)) # 输出: 6
print(sum_numbers(4, 5, 6, 7)) # 输出: 22
*args 会将传入的参数作为元组处理。
**kwargs 的基本概念
**kwargs 用于传递可变数量的关键字参数。
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
在这个例子中,print_info
可以接受任意数量的关键字参数,打印出它们的名称和值。
使用 **kwargs
我们可以调用 print_info
,传入不同的关键字参数。
print_info(name="Alice", age=30)
输出将为:
name: Alice
age: 30
**kwargs 会将传入的关键字参数作为字典处理。
*args 和 **kwargs 的结合使用
我们也可以在同一个函数中同时使用 *args 和 **kwargs。
def combined_function(*args, **kwargs):
print("Positional arguments:", args)
print("Keyword arguments:", kwargs)
这种组合使得函数的灵活性更高,可以处理多种参数类型。
总结
总结一下,*args 用于处理可变数量的位置参数,而 ** kwargs 用于处理可变数量的关键字参数。合理使用这两者,可以让我们的函数更加灵活和强大。
License:
CC BY 4.0