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