|
发表于 2023-8-1 22:52:01
|
显示全部楼层
本楼为最佳答案
当你使用Python编写收集参数(即可变长度参数)时,可以通过在参数名前面添加一个星号(*)来实现。这个星号用于表示这是一个可变长度的参数,允许函数接受任意数量的位置参数。具体来说,有两种类型的收集参数:*args和**kwargs。
1. *args:用于收集任意数量的位置参数。在函数定义中,将参数名前面添加一个单独的星号,例如:
- def my_function(*args):
- for arg in args:
- print(arg)
复制代码
在这个例子中,my_function接受任意数量的位置参数,并在函数内部使用for循环来处理这些参数。
2. **kwargs:用于收集任意数量的关键字参数(关键字参数是带有名称的参数)。在函数定义中,将参数名前面添加两个星号,例如:
- def my_function(**kwargs):
- for key, value in kwargs.items():
- print(key, value)
复制代码
在这个例子中,my_function接受任意数量的关键字参数,并使用for循环遍历这些参数的键值对。
如果你要在调用函数时传递可变长度的参数,可以在参数前面加上一个星号来展开可迭代对象,如下所示:
- def my_function(*args, **kwargs):
- # 处理args中的位置参数
- for arg in args:
- print(arg)
- # 处理kwargs中的关键字参数
- for key, value in kwargs.items():
- print(key, value)
- # 调用函数并传递参数
- my_function(1, 2, 3, name='John', age=30)
复制代码
在这个例子中,函数my_function接受多个位置参数和关键字参数,并将它们打印出来。
综上所述,通过在参数名前面添加星号(*)来定义收集参数,可以使函数接受任意数量的位置参数和关键字参数。 |
|