函数参数*和**有什么区别?
时间: 2023-07-23 16:13:30 浏览: 137
python函数参数*args**kwargs用法实例
5星 · 资源好评率100%
在 Python 中,函数参数中的 `*` 和 `**` 分别用于处理可变数量的位置参数和关键字参数。
`*` 表示接受可变数量的位置参数,也就是函数调用时可以传入任意多个参数,并且这些参数会被打包成一个元组传递给函数。例如,以下函数定义接受任意多个参数,并将它们相加:
```
def add(*args):
result = 0
for arg in args:
result += arg
return result
```
调用该函数时,可以传入任意多个参数:
```
add(1, 2, 3) # 返回 6
add(4, 5, 6, 7) # 返回 22
```
`**` 表示接受可变数量的关键字参数,也就是函数调用时可以传入任意多个以关键字形式定义的参数,并且这些参数会被打包成一个字典传递给函数。例如,以下函数定义接受任意多个关键字参数,并将它们打印出来:
```
def print_kwargs(**kwargs):
for key, value in kwargs.items():
print("{} = {}".format(key, value))
```
调用该函数时,可以传入任意多个以关键字形式定义的参数:
```
print_kwargs(name='Alice', age=30, city='Beijing')
# 输出:
# name = Alice
# age = 30
# city = Beijing
```
总结一下,`*` 用于接受可变数量的位置参数,而 `**` 用于接受可变数量的关键字参数。
阅读全文