*args
和**kwargs
在Python中,*args
和**kwargs
是常用的函数参数形式。它们的区别如下:
*args
是用于传递可变数量的非关键字参数。它允许在函数调用时传递任意数量的参数,这些参数会被封装为一个元组传递给函数。在函数内部可以使用args
来访问这个元组参数。示例:
def my_function(*args):for arg in args:print(arg)my_function("foo", "bar", "baz") # 输出结果:foo bar baz
**kwargs
是用于传递可变数量的关键字参数。它允许在函数调用时传递任意数量的关键字参数,这些参数会被封装为一个字典(dictionary)传递给函数。在函数内部可以使用kwargs
来访问这个字典参数。示例:
def my_function(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")my_function(name="John", age=25, city="New York") # 输出结果:name: John age: 25 city: New York
总结:*args
用于传递任意数量的非关键字参数(元组形式),而**kwargs
用于传递任意数量的关键字参数(字典形式)。使用这两种参数形式可以在定义函数时不限定参数的个数,并允许接收不同类型的参数。