在Python中,*args
和 **kwargs
是用来处理函数参数的特殊语法,它们允许你定义接受任意数量参数的函数。
一、*args
*args
用于接收任意数量的位置参数(positional arguments)。*args
表示将函数的位置参数打包成一个元组(tuple)。在函数内部,可以使用这个元组来处理传递进来的所有位置参数。
def example_function(*args):
for arg in args:
print(arg)
example_function(1, 2, 3, "four")
# 输出:
# 1
# 2
# 3
# four
二、**kwargs
**kwargs
用于接收任意数量的关键字参数(keyword arguments)。**kwargs
表示将函数的关键字参数打包成一个字典(dictionary)。在函数内部,可以使用这个字典来处理传递进来的所有关键字参数。
def example_function(**kwargs):
for key, value in kwargs.items():
print(key, ":", value)
example_function(name="Alice", age=30, city="Wonderland")
# 输出:
# name : Alice
# age : 30
# city : Wonderland
三、同时使用 *args
和 **kwargs
可以在函数定义中同时使用 *args
和 **kwargs
来接收任意数量的位置参数和关键字参数:
def example_function(arg1, *args, kwarg1="default", **kwargs):
print("arg1:", arg1)
print("args:", args)
print("kwarg1:", kwarg1)
print("kwargs:", kwargs)
example_function(1, 2, 3, kwarg1="custom", key1="value1", key2="value2")
# 输出:
# arg1: 1
# args: (2, 3)
# kwarg1: custom
# kwargs: {'key1': 'value1', 'key2': 'value2'}