Python获取模块中的类及类的属性方法信息

Python获取模块中的类及类的属性方法信息

一、sys.modules模块

sys.modules是一个全局字典,python启动后就将该字典加载在内存中,每当导入新的模块时sys.modules都将记录这些导入模块。字典sys.modules对于加载模块起到了缓冲的作用。

sys.modules拥有字典所拥有的一切方法。如:

importsys print(sys.modules[__name__]) print(sys.modules.values()) print(sys.modules.keys()) print(sys.modules.items()) #示例print(sys.modules.get(“demo2”)) #输出<module’demo3’from’G:\\BaiXXXYuan\\BaiXXXXYuanApi\\demo3.py’>

二、inspect模块

inspect模块主要提供了四种用处:

1.对对象进行类型检查

2.获取源码

3.获取类或者函数的参数信息

4.解析堆栈

  • inspect.getmembers(object[, predicate])返回一个包含对象的所有成员(name, value)的列表。返回的内容比对象的 dict包含的内容多,源码是通过dir()实现的。predicate是一个可选的函数参数,只有predicate函数判断为True的成员才被返回。
  • predicate一般调用以下16个方法inspect.ismodule(object)是否为模块inspect.isclass(object):是否为类inspect.ismethod(object):是否为方法(boundmethodwritteninpython)inspect.isfunction(object):是否为函数(python function, including lambda expression) inspect.isgeneratorfunction(object):是否为python生成器函数inspect.isgenerator(object):是否为生成器 inspect.istraceback(object)是否为tracebackinspect.isframe(object):是否为frameinspect.iscode(object):是否为codeinspect.isbuiltin(object):是否为built-in函数或built-in方法inspect.isroutine(object):是否为用户自定义或者built-in函数或方法inspect.isabstract(object):是否为抽象基类inspect.ismethoddescriptor(object):是否为方法标识符inspect.isdatadescriptor(object):是否为数字标识符,数字标识符有__get__和__set__属性;通常也有__name__和__doc__属性inspect.isgetsetdescriptor(object):是否为getsetdescriptorinspect.ismemberdescriptor(object):是否为memberdescriptor
  • inspect其他方法1.inspect.getdoc(object): 获取object的documentation信息 2.inspect.getcomments(object) 3.inspect.getfile(object): 返回对象的文件名 4.inspect.getmodule(object):返回object所属的模块名 5.inspect.getsourcefile(object): 返回object的python源文件名;object不能使built-in的module, class, mothod6.inspect.getsourcelines(object):返回object的python源文件代码的内容,行号+代码行 7.inspect.getsource(object):以string形式返回object的源代码 8.inspect.cleandoc(doc):

三、python获取模块中所有类的实例

demo2文件

classA():def__init__(self): self.A = “A”defrun(self): print(self.A)

demo3文件

classD():def__init__(self): self.D = “D”defd(self): print(self.D)

demo文件

from demo import A import demo2 import inspect import sys classB(A): def__init__(self): self.B1 = “B” defrun(self): print(self.B1) classC(A): def__init__(self): self.C1 = “C” defrun(self): print(self.C1) if__name__== ‘__main__’: print(sys.modules.get(“demo3”)) class_list = [] print(inspect.getmembers(sys.modules[__name__], inspect.isclass)) print(inspect.getmembers(sys.modules.get(“demo3”), inspect.isclass)) forname, class_ininspect.getmembers(sys.modules[__name__], inspect.isclass): class_list.append(class_) class_().run() print(class_list) #输出<module’demo3′ from’G:\\BaiGuoYuan\\BaiGuoYuanApi\\demo3.py’>[(‘A’, <class’demo2.A’>), (‘B’, <class ‘__main__.B’>), (‘C’, <class ‘__main__.C’>)][(‘D’, <class’demo3.D’>)]A B C [<class’demo2.A’>, <class ‘__main__.B’>, <class ‘__main__.C’>]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至19401980@qq.com举报,一经查实,本站将立刻删除。

(0)

大家都在看

  • 人类一败涂地怎么联机?,人类一败涂地联机攻略

    小伙伴们知道人类一败涂地怎么联机吗?今天小编就来讲解人类一败涂地联机攻略,感兴趣的快跟小编一起来看看吧,希望能够帮助到大家呢。 进入游戏开始页面 打开人类一败涂地的游戏页面,点击开始选项。 打开在线模式 在选择模式里,选中在线模式,并点击主机这一栏。 选中邀请好友 进入页面后,点击右侧选项栏里的邀请好友选项,就可以发出邀请了。 以上就是给大家分享的人类一败涂…

    2023年3月24日
    0580
  • wps绘图工具位置

    一般情况下,都在编辑窗口下方,如果没有,请点击编辑窗口的上方“工具”,选择“自定义”并单击,弹出“工具栏”和“命令”栏,点击“工具栏”将里面的“绘图”项打上钩,在编辑窗口下方就有“绘图”工具,你可以根据自己;wps画笔工具在“快速访问工作栏”wps画笔工具调用具体步骤如下1点击 左上角 quot快速访问工作栏quot 最右侧的横线加三角的图形 2点击quot…

    2023年4月14日
    0590
  • 苹果手机删除的软件怎么恢复

    最近有朋友问苹果手机删除的软件怎么恢复?其实很多人在使用手机时可能会误删一些软件,那么误删的软件要如何找回呢?这就为大家带来iphone找回卸载软件的方法图文步骤。 iphone找回卸载软件的方法图文步骤: 1、在手机桌面上找知到设置并点击它。 2、点击iTunes store与App Store。 3、点击appleid。 4、点击查看appleid。 5…

    2023年5月26日
    0660
  • topwidgets怎么添加小组件

    可以解决办法如下1重启手机后,再打开一次topwidgets,前往桌面再次尝试添加2打开手机设置通用还原还原主屏幕布局前往桌面再次尝试添加。 1可以考虑降级系统,毕竟这个是升级系统以后才出现的问题 2把推荐和回忆那全都删除,系统又会自动给你推荐照片,照片小组件就会显示了 3把组件删了重新添加 4重启手机看看,不少用户重启就解决了。 ios16如何自定义锁屏小…

    2023年4月26日
    0740
  • win7如何更改系统语言为中文

    1、1打开电脑,点击界面左下角的开始菜单图标2点击开始菜单界面左侧的设置选项3接着点击时间和语言设置项4再点击左侧菜单中的区域和语言选项5在区域和语言设置界面中,将Windows显示语言设置。 2、1打开开始菜单 首先按windows键打开开始菜单2进入时间和语言 然后选择时间和语言选项,点击进入3进入语言选项 进入后,选择区域和语言选项4添加语言选项 然后…

    2023年4月23日
    0550
  • win7专业版激活密钥免费(Win7永久激活密钥分享)

    虽然微软大力推广Win10系统,但就目前来说,依旧有非常多的用户还是使用Win7系统。对于Win10系统对于很多小白用户来说更是难适应。我们知道Win7系统目前有很多Ghost版和OEM版,小白建议安装OEM版,纯净无广告。而网上下载的那些Ghost都是经过系统封装的,内置的广告非常多,而且不稳定,容易感染病毒,小白不建议安装这类型系统。而安装OEM版遇到的…

    2023年3月23日
    0590

发表回复

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