python函数中的*args, **kwargs
在Python中,*args
和**kwargs
是用来处理函数参数的特殊语法。
-
*args
:它用于接受任意数量的位置参数(即不带关键字的参数)。在函数定义中,*args
表示一个元组,其中包含了传递给函数的所有位置参数。使用*args
可以让函数接受不定数量的参数,这些参数将以元组的形式传递给函数。 -
**kwargs
:它用于接受任意数量的关键字参数(即带关键字的参数)。在函数定义中,**kwargs
表示一个字典,其中包含了传递给函数的所有关键字参数及其对应的值。使用**kwargs
可以让函数接受不定数量的关键字参数,这些参数将以字典的形式传递给函数。
下面是一个简单的示例来说明它们的使用:
def example_func(*args, **kwargs):
print("Positional arguments (*args):", args)
print("Keyword arguments (**kwargs):", kwargs)
example_func(1, 2, 3, a='apple', b='banana', c='cherry')
输出结果将会是:
Positional arguments (*args): (1, 2, 3)
Keyword arguments (**kwargs): {'a': 'apple', 'b': 'banana', 'c': 'cherry'}
在这个例子中,example_func
函数接受了3个位置参数和3个关键字参数。*args
接受了位置参数,将它们打包成一个元组(1, 2, 3)
,而**kwargs
接受了关键字参数,将它们打包成一个字典{'a': 'apple', 'b': 'banana', 'c': 'cherry'}
。