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

class Criminal():def __init__(self, name, sex):self.name = nameself.sex = sexprint("%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 sexprint("第一个参数类型是%s,第二个参数类型是%s" % (type(fn1),type(fn2)))# odict_items([('name', <Parameter "name">), ('sex', <Parameter "sex">)])   列表中的元组 这个有难度# 第一个参数类型是<class 'str'>,第二个参数类型是<class 'inspect.Parameter'>  查看.参数 fn2kind= fn2.kindprint(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', '英文字典'), ('大哥', '中文字典')])
"""

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

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注