参数传递方式:
- 使用
*args
时,函数调用者可以传递任意数量的位置参数,这些参数在函数内部作为一个元组 (tuple
) 处理。 - 使用
**kwargs
时,函数调用者可以传递任意数量的具有名称的参数(即关键字参数),这些参数在函数内部作为一个字典 (dict
) 处理。
# 使用 *args
def func_with_args(*args):
for arg in args:
print(arg)
func_with_args(1, 2, 3) # 输出:1, 2, 3
# 使用 **kwargs
def func_with_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
func_with_kwargs(name="Alice", age=25) # 输出:name: Alice, age: 25
- 在第一个示例中,
func_with_args
接受任意数量的位置参数,并将它们作为一个元组处理。 - 在第二个示例中,
func_with_kwargs
接受任意数量的关键字参数,并将它们作为一个字典处理。
简而言之,*args
用于未命名的参数(位置参数),而 **kwargs
用于命名参数(关键字参数)。