inspect--python自检查模块

inspect模块用于获取Python对象的相关信息,如模块、类、方法等。本文详细介绍了inspect.getmembers、inspect.getmodulename等函数,并给出了案例解析,帮助理解inspect模块在获取源代码、检查类型等方面的应用。
摘要由CSDN通过智能技术生成

官方文档:https://docs.python.org/2/library/inspect.html

inspect模块提供了一些有用的函数来帮助获取有关活动对象的信息,例如模块,类,方法,函数,回溯,框架对象和代码对象。例如,它可以帮助您检查类的内容,检索方法的源代码,提取和格式化函数的参数列表,或获取显示详细回溯所需的所有信息。
这个模块提供了四种主要的服务:类型检查,获取源代码,检查类和函数,以及检查解释器堆栈。

inspect.getmembers(object[, predicate] ) #重要

返回按名称排序的(名称,值)对列表中的对象的所有成员。如果提供了可选的谓词参数,则仅包含谓词返回true值的成员。
predicate 参数:ismodule,isclass,ismethod,isfunction,isbuiltin等,该参数是True才会返回匹配到的类型,可见最下方例子

注意:

getmembers()当参数是一个类时,它不返回元类属性(此行为是从dir()函数继承的)。
inspect.getmoduleinfo(path)
返回一个值元组,描述Python如何解释路径标识的文件(如果它是模块),或者None它不会被识别为模块。返回元组,其中name是模块的名称,没有任何封装包的名称,后缀是文件名的尾部(可能不是点分隔的扩展名),mode是将使用的模式(或),module_type是给出模块类型的整数。 module_type将有一个值,可以与中定义的常量进行比较(name, suffix, mode,module_type)open()’r”rb’imp模块; 有关模块类型的更多信息,请参阅该模块的文档。
在2.6版中更改:返回一个命名元组 。ModuleInfo(name, suffix, mode, module_type)

inspect.getmodulename(path)

返回由文件路径命名的模块的名称,不包括封装包的名称。这使用与解释器在搜索模块时使用的算法相同的算法。如果根据解释器的规则无法匹配名称,None则返回。

inspect.ismodule(object)

如果对象是模块,则返回true。

inspect.isclass(object)

如果对象是类,无论是内置的还是在Python代码中创建的,则返回true。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值