名称 | 含义 |
---|---|
POSITIONAL_ONLY | 必须为位置参数,python没有明确定义位置参数的语法 |
POSITIONAL_OR_KEYWORD | 可以为位置参数或者关键字参数 |
VAR_POSITIONAL | 位置参数的元素没有绑定到任何其他参数,对应python函数定义中的*args (可变参数) |
KEYWORD_ONLY | 值必须作为关键字参数提供,只有关键字参数是指出现在* 或者*args 之后的参数(命名关键字参数) |
VAR_KEYWORD | 没有绑定到任何其他参数的关键字参数的字典,对应参数定义的**kwargs (关键字参数) |
上面就是各参数类型的含义,下面来个例子:
import inspect
def foo(a, b, *args,c, **kwargs):
pass
sig = inspect.signature(foo)
for name, param in sig.parameters.items():
print('参数:%s的类型为:%s' % (name, param.kind))
输出结果如下:
参数:a的类型为:POSITIONAL_OR_KEYWORD
参数:b的类型为:POSITIONAL_OR_KEYWORD
参数:args的类型为:VAR_POSITIONAL
参数:c的类型为:KEYWORD_ONLY
参数:kwargs的类型为:VAR_KEYWORD