在Python中,你可以使用两种主要的方式来处理可变数量的参数:
- 使用星号(
*
)处理位置参数:当在函数定义中使用一个星号前缀时,它会将传入的多个位置参数收集到一个元组中。
def func(*args):
for arg in args:
print(arg)
func(1, 2, 3, 4) # 输出: 1 2 3 4
- 使用双星号(``)处理关键字参数**:当在函数定义中使用两个星号前缀时,它会将传入的关键字参数收集到一个字典中。
def func(**kwargs):
for key, value in kwargs.items():
print(f"{key} = {value}")
func(a=1, b=2, c=3) # 输出: a = 1, b = 2, c = 3
你也可以在同一个函数中同时使用它们:
def func_mixed(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key} = {value}")
func_mixed(1, 2, 3, a=4, b=5) # 输出: 1 2 3, a = 4, b = 5
注意:在函数定义中,*args
必须出现在 **kwargs
之前,因为位置参数在关键字参数之前被处理。
这些特性使得Python函数在处理可变数量的参数时非常灵活。