python学习——033函数接受的参数*args和**kwargs
向函数传递任意数量的实参*args(1个星号),可用传递列表替代;传递任意数量的键值对**kwargs(2个星号),可用字典替代。
1.*args和列表传递
*args 用于在函数定义时表示可以接收任意数量的位置参数。当调用函数时,如果已有一个列表,可以使用 * 对列表进行解包,将列表中的元素作为独立的位置参数传递给函数。
def print_args(*args):
for arg in args:
print(arg)
my_list = [1, 2, 3]
print_args(*my_list)
在这个例子中,print_args 函数使用 *args 接收任意数量的位置参数。在调用函数时,*my_list 将列表 my_list 解包,使得列表中的每个元素作为独立的参数传递给函数。
2.**kwargs和字典传递
**kwargs 用于在函数定义时表示可以接收任意数量的关键字参数(键值对)。当调用函数时,如果已有一个字典,你可以使用 ** 对字典进行解包,将字典中的键值对作为独立的关键字参数传递给函数。
def print_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
my_dict = {'name': 'Alice', 'age': 25}
print_kwargs(**my_dict)
在这个例子中,print_kwargs 函数使用 **kwargs 接收任意数量的关键字参数。在调用函数时,**my_dict 将字典 my_dict 解包,使得字典中的每个键值对作为独立的关键字参数传递给函数。
综上所述,可以使用列表配合 * 解包来替代 *args 传递任意数量的位置参数,使用字典配合 ** 解包来替代 **kwargs 传递任意数量的关键字参数。
上一篇:Go语言-函数值