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
语句在模块中定义的每个函数和类的描述符。返回的字典将模块级函数和类名映射到它们的描述符。嵌套对象将输入到其父级的子级字典中。与 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
字典派生,但仍保留用于向后兼容。