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 语句定义的类。它们与Functions
具有相同的属性,并额外有两个属性。- file¶
定义类的文件名。
- module¶
定义所描述类的模块名称。
- name¶
类名。
- lineno¶
文件中定义开始的行号。
- parent¶
对于顶级类,为
None
。对于嵌套类,为其父级。在 3.7 版本加入。
- children¶
一个字典,将名称映射到嵌套函数和类的描述符。
在 3.7 版本加入。
- super¶
一个
Class
对象列表,描述所描述类的直接基类。被命名为超类但无法通过readmodule_ex()
发现的类将作为包含类名的字符串列出,而不是Class
对象。
- methods¶
一个
dictionary
,将方法名映射到行号。这可以从新的children
字典中派生,但为了向后兼容性而保留。