码迷,mamicode.com
首页 > 其他好文 > 详细

参数注解之inspect里混淆不清的一些属性整理

时间:2018-06-14 15:11:16      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:映射   efault   IV   def   turn   st3   pre   print   value   

def add(x:int,y:int=7) ->int:
    return x+y

sig=inspect.signature(add) #inspect.Signature类
print(函数签名: ,sig)
#函数签名:  (x:int, y:int=7) -> int

params=sig.parameters #mappingproxy类
print(函数参数: ,params)
#函数参数:  OrderedDict([(‘x‘, <Parameter "x:int">), (‘y‘, <Parameter "y:int=7">)])

print(*‘*30)
#******************************

for k,v in params.items(): #键为str类,值为inspect.Parameter类
    print(函数参数映射对象键:{} ;函数参数映射对象值:{}.format(k,v))
#函数参数映射对象键:x ;函数参数映射对象值:x:int
#函数参数映射对象键:y ;函数参数映射对象值:y:int=7

for param in params.values():#parameters映射对象值
    print(param)
    #x:int
    #y:int
    print(param.name)
    #x
    #y
    print(param.annotation)
    #<class ‘int‘>
    #<class ‘int‘>
    print(param.kind)
    #POSITIONAL_OR_KEYWORD
    #POSITIONAL_OR_KEYWORD
    print(parma.default)
    #<class ‘inspect._empty‘>
    #7

param_list1=list(params)
print(param_list1)
#[‘x‘, ‘y‘]
param_list2=list(params.keys())
print(param_list2)
#[‘x‘, ‘y‘]
param_list3=list(params.values())
print(param_list3)
#[<Parameter "x:int">, <Parameter "y:int=7">]

参数注解之inspect里混淆不清的一些属性整理

标签:映射   efault   IV   def   turn   st3   pre   print   value   

原文地址:https://www.cnblogs.com/hongdanni/p/9182324.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!