我们在开发python的时候经常会碰见这两个参数,*args
和**kwargs
是Python中的两个特殊的参数,它们可以用来处理不定数量的参数。下面一点分别介绍一下它们的用法:
*args
*args
用于传递不定数量的位置参数,它会将所有传入的位置参数打包成一个元组(tuple)。在函数定义时,我们可以在参数列表中使用*args
来接收这些位置参数。下面是一个简单的例子:
def my_sum(*args):
result = 0
for num in args:
result += num
return result
print(my_sum(1, 2, 3, 4, 5)) # 输出15
**kwargs
**kwargs
用于传递不定数量的关键字参数,有点类似key,value的格式,它会将所有传入的关键字参数打包成一个字典(dict)。在函数定义时,我们可以在参数列表中使用**kwargs
来接收这些关键字参数。下面是一个简单的例子:
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Tom", age=18, gender="male")
需要注意的是,*args
和**kwargs
必须放在参数列表的最后面,因为它们会接收所有剩余的位置参数和关键字参数。如果在它们之后还有其他参数,Python解释器将无法判断哪些参数应该传递给*args
或**kwargs
。
更多精彩内容,请关注同名公众:一点sir(alittle-sir)