Skip to main content

32.9. pyclbr — Python类浏览器支持

源代码: Lib/pyclbr.py


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

pyclbr.readmodule(module, path=None)

读取模块并返回将类名映射到类描述符对象的字典。参数 module 应该是作为字符串的模块的名称;它可以是包内的模块的名称。 path 参数应该是一个序列,用于增加 sys.path 的值,用于定位模块源代码。

pyclbr.readmodule_ex(module, path=None)

readmodule(),但返回的字典,除了将类名映射到类描述符对象之外,还将顶级函数名映射到函数描述符对象。此外,如果正在读取的模块是包,则返回字典中的密钥 '__path__' 的值为包含包搜索路径的列表。

32.9.1. 类对象

readmodule()readmodule_ex() 返回的字典中用作值的 Class 对象提供以下数据属性:

Class.module

定义类描述符描述的类的模块的名称。

Class.name

类的名称。

Class.super

描述所描述类的直接基类的 Class 对象的列表。被命名为超类但是不能被 readmodule() 发现的类被列为具有类名称的字符串,而不是作为 Class 对象。

Class.methods

字典映射方法名称到行号。

Class.file

包含定义类的 class 语句的文件的名称。

Class.lineno

file 命名的文件中的 class 语句的行号。

32.9.2. 函数对象

readmodule_ex() 返回的字典中用作值的 Function 对象提供以下属性:

Function.module

定义由函数描述符描述的函数的模块的名称。

Function.name

函数的名称。

Function.file

包含定义函数的 def 语句的文件的名称。

Function.lineno

file 命名的文件中的 def 语句的行号。