您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python如何获取模块中类以及类的属性方法信息

51自学网 2022-02-21 10:45:37
  python
这篇教程Python如何获取模块中类以及类的属性方法信息写得很实用,希望能帮到您。

一、sys.modules模块

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

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

import sysprint(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):是否为方法(bound method written in python)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):是否为getset descriptorinspect.ismemberdescriptor(object):是否为member descriptor

inspect其他方法

inspect.getdoc(object): 获取object的documentation信息inspect.getcomments(object)inspect.getfile(object): 返回对象的文件名inspect.getmodule(object):返回object所属的模块名inspect.getsourcefile(object): 返回object的python源文件名;object不能使built-in的module, class, mothodinspect.getsourcelines(object):返回object的python源文件代码的内容,行号+代码行inspect.getsource(object):以string形式返回object的源代码inspect.cleandoc(doc):

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

demo2文件

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。