pyclbr
— Python 模块浏览器支持¶
源代码: Lib/pyclbr.py
pyclbr
模块提供有关 Python 代码模块中定义的函数、类和方法的有限信息。这些信息足以实现模块浏览器。信息是从 Python 源代码中提取的,而不是通过导入模块来提取的,因此此模块可以安全地用于不受信任的代码。此限制使得无法将此模块用于未用 Python 实现的模块,包括所有标准和可选扩展模块。
- pyclbr.readmodule(module, path=None)¶
返回一个字典,将模块级类名映射到类描述符。如果可能,将包含导入的基类的描述符。参数 module 是一个字符串,包含要读取的模块的名称;它可以是包中模块的名称。如果给出,path 是一个目录路径序列,预先添加到
sys.path
,用于定位模块源代码。此函数是原始接口,仅保留用于向后兼容性。它返回以下内容的过滤版本。
- pyclbr.readmodule_ex(module, path=None)¶
返回一个基于字典的树,其中包含模块中每个用
def
或class
语句定义的函数或类的函数或类描述符。返回的字典将模块级函数和类名映射到它们的描述符。嵌套对象被输入到其父级的 children 字典中。与 readmodule 一样,module 指定要读取的模块,path 预先添加到 sys.path。如果要读取的模块是一个包,则返回的字典有一个键'__path__'
,其值是一个包含包搜索路径的列表。
在版本 3.7 中添加: 嵌套定义的描述符。可以通过新的 children 属性访问它们。每个都有一个新的 parent 属性。
这些函数返回的描述符是 Function 和 Class 类的实例。用户不应创建这些类的实例。
函数对象¶
类对象¶
- class pyclbr.Class¶
Class
Class
实例描述由 class 语句定义的类。它们具有与Functions
相同的属性,以及另外两个属性。- file¶
定义类的文件名称。
- module¶
定义所描述类的模块的名称。
- name¶
类的名称。
- lineno¶
文件中定义开始的行号。
- parent¶
对于顶层类,
None
。对于嵌套类,父级。在版本 3.7 中添加。
- children¶
一个字典,将名称映射到嵌套函数和类的描述符。
在版本 3.7 中添加。
- super¶
一个
Class
对象列表,描述所描述类的直接基类。作为超类命名的但无法通过readmodule_ex()
发现的类,将作为包含类名的字符串列出,而不是作为Class
对象列出。
- methods¶
一个
dictionary
,将方法名映射到行号。这可以从较新的children
字典中推导出来,但保留用于向后兼容性。