官方文档: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。