参数定义规则
Python 函数的参数定义规则是:
- 位置参数(必需参数):必须传入值,没有默认值。
- 关键字参数(默认参数):可以选择性地传入值,有默认值。
- 位置参数必须放在关键字参数之前。
原因:解释器需要保证调用函数时能够明确匹配到每个参数的位置。如果非默认参数放在默认参数之后,解释器在解析时会混淆传递顺序,不知道某个值究竟是给哪个参数的。
原理分析
当解释器处理函数调用时,它解析参数的顺序如下:
- 匹配位置参数:从左到右,匹配传入的值。
- 匹配关键字参数:根据参数名匹配。
- 如果某个值既可以解释为位置参数也可以解释为关键字参数,解释器会混淆,从而报错。