一、函数参数匹配表
语法 | 位置 | 解释 |
---|---|---|
func(value) | 调用者 | 常规参数:通过位置进行匹配 |
func(name=value) | 调用者 | 关键字参数:通过变量名匹配 |
func(*sequence) | 调用者 | 以name传递所有的对象,并作为独立的基于位置的参数 |
func(**dict) | 调用者 | 以name成对的传递所有的关键字/值,并作为独立的关键字参数 |
def func(name) | 函数 | 常规参数:通过位置或变量名进行匹配 |
def func(name=value) | 函数 | 默认参数值,如果没有在调用中传递的话 |
def func(*name) | 函数 | 匹配并收集(在元组中)所有包含位置的参数 |
def func(**name) | 函数 | 匹配并收集(在字典中)所有包含位置的参数 |
def func(*args, name) | 函数 | 参数必须在调用中按照关键字传递 |
def func(*, name=value) | 函数 | Python 3.0 |
二、参数顺序
- 在函数调用中,参数必须以此顺序出现:任何未知参数(value),后面跟着任何关键字参数(name=value)和*sequence形式组合,后面跟着**dict形式
- 在函数头部,参数必须以此顺序出现:任何一般参数(name),紧跟着任何默认参数(name=value),如果有的话,后面是*name(或者是Python 3.0中是*)的形式,后面跟着任何 name 或 name=value keyword-only参数(在Python 3.0中),后面跟着**name形式。