参数的定义(非参数检验的优缺点)
1. 位置参数
2. 可变长位置参数
3. 命名关键字参数
使用*号分隔, 后面的形参名c表示: 之后的实参传递进来的时候, 必须要使用"c"这个关键字传参
如: foo(1, 2, *[3, 4, 5], c=6) >> 可正常调用
foo(1, 2, *[3, 4, 5], b=6) >> 报错
用途: 不明(感觉没啥用啊)
4. 默认/非默认参数
位置: 必须要放在"非默认的位置参数"后 (notice: '默认参数b' 可以放在 "非默认的命名关键词参数c和d" 前 )
5. 可变长关键字参数
其实**kwargs参数也算是一种"命名关键字参数" (它也是必须要以"关键字传参"形式传入实参)
1. 位置传参
2. 关键字传参
注意:
传递参数时:
接收参数时(在函数内部使用参数时):
所以此时:
args: 其实就是个元祖tuple
kwargs: 其实就是个字典dict