pyclbr– Python类浏览器支持

源代码: Lib / pyclbr.py


pyclbr模块提供有关定义的函数,类和方法的有限信息在Python编码的模块中。该信息足以实现模块浏览器。信息是从Python源代码中提取的,而不是通过导入模块,因此该模块可以安全地与不受信任的代码一起使用。这种限制使得无法将此模块与未在Python中实现的模块一起使用,包括所有标准和可选的扩展模块.

pyclbr.readmodulemodule, path=None
返回一个字典,将模块级类名映射到classdescriptors。如果可能,包含导入基类的描述符。参数module是一个字符串,其中包含要读取的模块的名称;它可能是包中模块的名称。如果给出,pathsys.path前面的一系列目录路径,用于定位模块源代码.
pyclbr.readmodule_ex (module, path=None )
返回一个基于字典的树,其中包含模块中定义的每个函数和类的函数或类描述符defclass声明。返回的字典将模块级函数和类名称映射到它们的描述符。嵌套对象将输入其父级的子级字典中。与readmodule一样,module命名要读取的模块,并将path添加到sys.path。如果正在读取的模块是一个包,那么该词典中有一个键"__path__"其值为包含包搜索路径的列表.

新版本3.7:嵌套定义的描述符。可以通过新的children属性访问它们。每个都有一个新的父属性.

这些函数返回的描述符是函数类和类类的实例。用户不应该创建这些类的实例.

 

功能对象

Function实例描述由defstatements定义的函数。它们具有以下属性:

Function.file
定义功能的文件名称.
Function.module
定义所述功能的模块名称.
Function.name
功能名称.
Function.lineno
中的行号定义开始的文件.
Function.parent
对于顶级函数,无。对于嵌套函数,parent.

新版本3.7.

Function.children
字典映射名称到嵌套函数和类的描述符.

新版本3.7.

 

类对象

Class实例描述由类句定义的类。它们与函数具有相同的属性,另外两个.

Class.file
定义类的文件的名称.
Class.module
定义所描述的类的模块的名称.
Class.name
类的名称.
Class.lineno
定义开始的文件中的行号.
Class.parent
对于顶级类,无。对于嵌套类,parent.

新版本3.7.

Class.children
字典映射名称到嵌套函数和类的描述符.

新版本3.7.

Class.super
的列表 Class描述所描述类的直接基类的对象。名为assuperclasses但不能被readmodule_ex()被列为带有类名的字符串而不是Class objects.
Class.methods
字典映射方法命名为行号。这可以从较新的儿童词典中获得,但仍然是forback-compatibility.