Python函数参数的种类主要从定义函数的角度划分,包括以下5种:
1. 位置参数(Positional Arguments)
最普通的参数,调用时按位置顺序传递,必须传且数量一致。
2. 默认参数(Default Arguments)
定义时给参数赋默认值,调用时可以不传;默认参数必须放在位置参数后面。
3. 可变位置参数(*args)
使用*接收任意多个位置参数,以元组形式保存。
4. 关键字参数(kwargs)**
使用**接收任意多个关键字参数,以字典形式保存。
5. 关键字-only参数(Keyword-Only Arguments)
出现在*args之后或单独的*之后,调用时必须用关键字传递。常用于强制明确参数含义。
此外,从调用角度,还可以按位置传递或关键字传递,后者可以不按参数定义顺序。
示例:
```python
def func(a, b=2, *args, c, **kwargs):
# a: 位置参数
# b: 默认参数
# args: 可变位置参数
# c: 关键字-only参数(必须用c=值传入)
# kwargs: 可变关键字参数
pass
```
注意:定义参数时顺序必须是:**位置参数 → 默认参数 → *args → 关键字-only参数 → kwargs。