在Python函数中,** 和 * 有什么区别?
时间: 2024-09-17 08:03:16 浏览: 38
python函数参数*args**kwargs用法实例
5星 · 资源好评率100%
在Python函数中,`*` 和 `**` 都用于处理参数,但它们的作用和用途有所不同。
- `*args` 用于收集零个或多个位置参数,并作为一个元组(tuple)传入函数。这允许函数接收不定量的位置参数,如之前提到的星标unpacking的例子。
- `**kwargs` 则用于收集零个或多个关键字参数(key-value pairs),并将它们打包成一个字典(dictionary)。这意味着函数可以接受通过名字指定的任意数量的参数。
举个例子:
```python
def print_params(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key}: {value}")
print_params(1, 2, 3, name="Alice", age=30) # 输出: 1 2 3 name: Alice age: 30
```
在这里,`*args` 收集了三个位置参数,而 `**kwargs` 接收并打印了两个关键字参数。
阅读全文