拆分(unpack):*args是把打包了的参数拆成单个的,依次赋值给函数的形参,**kwargs是把字典的键值拆成单个的,依次赋值给函数的形参。
时间: 2024-09-06 15:01:32 浏览: 47
举例介绍Python中的25个隐藏特性
在Python中,`*args` 和 `**kwargs` 是两个特殊的语法特性,用于处理可变数量的位置参数和关键字参数。当你不确定函数需要接受多少个参数,或者希望函数能够接受任意数量的位置参数时,可以使用它们。
- `*args` (星号参数):当在函数定义中看到这一结构时,它表示该位置可以接收任意数量的位置参数,并将这些参数作为一个元组(tuple)传递到函数内部。例如:
```python
def function_with_args(*args):
for arg in args:
print(arg)
```
你可以像这样调用这个函数,传入任意数量的参数:
```python
function_with_args(1, 2, 3, "hello")
```
- `**kwargs` (双星号参数):类似地,`**kwargs` 表示接收任意数量的关键字参数,并将这些参数作为字典(dictionary)传递。在函数内部,你可以通过键来访问这些参数。例如:
```python
def function_with_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
```
调用时可以指定参数名:
```python
function_with_kwargs(name="Alice", age=30, city="New York")
```
阅读全文