2019-04-26
阅读量:
751
python中inspect模块是什么?
signature(callable)-><class ‘inspect.Signature’> 获取签名(函数签名包含了一个函数的信息,包括函数名,它的产生类型、它所在的类和名称空间及其他信息)
签名返回类型为inspect.Signature类型
parameters属性,记录了函数中定义是注解和参数。parameters实际上是一个字典。
annotation 可以获取parameters对应value值的类型,即定义是注解说明的类型。
简单示例
import inspect
def add(x,y:int=5,*args,k,z=4,**kwargs):
return x+y
sig = inspect.signature(add) #获取函数签名
print(sig,type(sig)) #函数签名
print("params =",sig.parameters) #记录参数
print(sig.parameters['y'],type(sig.parameters['y']))
print(sig.parameters['y'].annotation) #y参数的类型
print(sig.parameters['x'])
print(sig.parameters['x'].annotation) #如果定义函数参数时没添加注解类型,默认为inspect._empty空类型
print(sig.parameters['args'])
print(sig.parameters['args'].annotation)
print(sig.parameters['kwargs'])
print(sig.parameters['kwargs'].annotation)






评论(0)


暂无数据
推荐帖子
2条评论
6条评论
7条评论