Python之inspect模块,参数注解

signature(callable),获取签名(函数签名抱哈了一个函数的信息,包括函数名,它的参数类型,所在的类和名称空间及其他信息。)

import inspect

def add(x:int,y:int,*args,**kwargs) -> int:
    return x + y

sig = inspect.signature(add)
print(sig)
print("params: ",sig.parameters)
print("return : ",sig.return_annotation)
print(sig.parameters["y"])
print(sig.parameters["x"].annotation)
print(sig.parameters["args"])
print(sig.parameters["args"].annotation)
print(sig.parameters["kwargs"])
print(sig.parameters["kwargs"].annotation)
#结果
(x: int, y: int, *args, **kwargs) -> int
params:  OrderedDict([('x', <Parameter "x: int">), ('y', <Parameter "y: int">), ('args', <Parameter "*args">), ('kwargs', <Parameter "**kwargs">)])
return :  <class 'int'>
y: int
<class 'int'>
*args
<class 'inspect._empty'>
**kwargs
<class 'inspect._empty'>

inspect.isfunction(add) 是否是函数
inspect.ismethod(add) 是否是类的方法
inspect.isgenerator(add) 是否是生成器对象
inspect.isgeneratorfunction(add) 是否是生成器函数
inspect.isclass(add) 是否是类
inspect.ismodule(add) 是否是模块
inspect.isbuiltin(print) 是否是内建函数

inspect模块

parameter对象
  • 保存在元组中,是只读的
  • name 参数的名字
  • annotation 参数的注解,可能没有定义
  • default 参数的缺省值,可能没有定义
  • empty 特殊的类,用来标记default属性或者注释annotation属性的空值。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容