Python中常常使用\args与**kwargs这样的参数形式定义函数的参数,他们表示该函数可以接受任何类型任何数量的参数*
一句话解释
- *args是非关键字参数,用于元
- **kwargs是关键字参数,用于字典
测试
1 | def test(*args, **kwargs): |
注意: 关键字参数后面不能有非关键字参数
1
test(1, a=1, 2)
- 上面的函数调用会造成语法错误
总结
- *args表示任何多个无名参数,它是一个tuple;
- **kwargs表示关键字参数,它是一个dict
- 同时使用*args和**kwargs时,必须*args参数列要在**kwargs前
- 否则提示语法错误“SyntaxError: non-keyword arg after keyword arg”