您的位置:首页 > 编程语言 > Python开发

Python inspect模块参数类型kind的整理

2018-02-06 11:04 281 查看
名称含义
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: