python中inspect的用法(这个难懂,后期再补)

    科技2023-12-16  107

    class Criminal(): def __init__(self, name, sex): self.name = name self.sex = sex print("%s是%s的" %(name,sex)) def city(self,city): print("来自于%s" %(city)) # 导入 inspect 包 import inspect # 查看签名(Criminal) signture 签名(识别标识) n1 =inspect.signature(Criminal) print(n1)# (name, sex) inspect.signature(Class)是(name, sex) print(type(n1))# <class 'inspect.Signature'> # inspect.signature(Class)的类型是<class 'inspect.Signature'> # 查看签名(Criminal)的参数 n2 = inspect.signature(Criminal).parameters print("inspect.signature(Criminal).parameters属性是") print(n2)# OrderedDict([('name', <Parameter "name">), ('sex', <Parameter "sex">)]) print("inspect.signature(Criminal).parameters属性类型是") print(type(n2)) # <class 'mappingproxy'> """ Parameter 参数 , OrderedDict 顺序字典 是一种有秩序的字典 , mappingproxy 映射代理 """ # 查看签名(Criminal)的参数的字典 n3 = inspect.signature(Criminal).parameters.items() print(n3) # 打印出来的是一个元组 odict_items([('name', <Parameter "name">), ('sex', <Parameter "sex">)]) # 字典里面的key是属于什么类型呢? # 因为字典里面只有两个参数,那么创建两个参数来赋值看看 for fn1,fn2 in n3: print(fn1,fn2)# name name sex sex print("第一个参数类型是%s,第二个参数类型是%s" % (type(fn1),type(fn2))) # odict_items([('name', <Parameter "name">), ('sex', <Parameter "sex">)]) 列表中的元组 这个有难度 # 第一个参数类型是<class 'str'>,第二个参数类型是<class 'inspect.Parameter'> 查看.参数 fn2kind= fn2.kind print(fn2kind)# POSITIONAL_OR_KEYWORD 位置或者关键字 print(type(fn2kind)) # <enum '_ParameterKind'> 枚举 参数种类 fn2default = fn2.default # 默认值 print(fn2default) # <class 'inspect._empty'> 类型 查看 空的 print(type(fn2default)) # <class 'type'> 类型 # 查看参数 仅限关键字 n4 = inspect.Parameter.KEYWORD_ONLY print(n4) # KEYWORD_ONLY 仅限关键字 print(type(n4)) # <enum '_ParameterKind'> 枚举 参数种类 """ 补充items()的知识 Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组。 zidian = {"abc":"英文字典","大哥":"中文字典"} print(zidian.items()) 得到的输出为 元组数据 dict_items([('abc', '英文字典'), ('大哥', '中文字典')]) """

    “”" 女生喜欢帅哥,有钱的。 我羡慕这种男生。 他们拥有过很多女孩的青春。 而我,拼了命的努力才能拥有一个他们拥有过的女孩。 “”"

    Processed: 0.025, SQL: 8