Python 函数参数匹配的特殊模式
在 Python 编程中,函数参数的匹配方式有多种,掌握这些特殊的匹配模式能让我们编写更加灵活和通用的代码。下面将详细介绍 Python 函数参数匹配的相关知识。
1. 参数匹配的详细规则
当我们使用特殊的参数匹配模式并将它们组合起来时,Python 对参数的顺序有严格要求:
- 函数调用时 :参数必须按以下顺序出现:任意位置参数(值),接着是关键字参数组合(名称=值),可迭代对象,最后是 字典。
- 函数定义时 :参数必须按以下顺序出现:普通参数(值),之后是关键字参数(名称=值),然后是 名称(或 Python 3.x 中的 ),接着是只能作为关键字的参数名称或名称=值(Python 3.x 中),最后是 名称。
无论是在函数调用还是定义中,**args 形式必须出现在最后。如果参数顺序混乱,会导致语法错误,因为其他组合可能会产生歧义。
Python 内部在赋值前执行以下步骤来匹配参数:
1. 按位置分配非关键字参数。
2. 通过名称匹配分配关键字参数。
3. 将额外的非关键字参数分配给 名称的元组。
4. 将额外的关键字参数分配给 *名称的字典。
5. 将函数定义中未分配的参数赋默认值。
之后,Python 会检查每个参数是否恰好分配了一个值,如果不是,则会抛出错误。匹配完成后,Python 将参数名称分配给传递给它们的对象。
超级会员免费看
订阅专栏 解锁全文
1888

被折叠的 条评论
为什么被折叠?



