pyclbr — Python 模块浏览器支持 — Python 文档
来自菜鸟教程
Python/docs/3.8/library/pyclbr
pyclbr — Python 模块浏览器支持
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 属性访问的。 每个都有一个新的父属性。
这些函数返回的描述符是 Function 和 Class 类的实例。 用户不应创建这些类的实例。
函数对象
类 Function
实例描述了由 def 语句定义的函数。 它们具有以下属性:
- Function.file
- 在其中定义函数的文件的名称。
- Function.module
- 定义所描述函数的模块的名称。
- Function.name
- 函数的名称。
- Function.lineno
- 文件中定义开始的行号。
- Function.parent
对于顶级函数,无。 对于嵌套函数,父函数。
3.7 版中的新功能。
- Function.children
将名称映射到嵌套函数和类的描述符的字典。
3.7 版中的新功能。
类对象
Class Class
实例描述了由 class 语句定义的类。 它们具有与 Functions 相同的属性,另外还有两个属性。
- Class.file
- 在其中定义类的文件的名称。
- Class.module
- 定义所描述类的模块的名称。
- Class.name
- 班级名称。
- Class.lineno
- 文件中定义开始的行号。
- Class.parent
对于顶级课程,无。 对于嵌套类,父类。
3.7 版中的新功能。
- Class.children
将名称映射到嵌套函数和类的描述符的字典。
3.7 版中的新功能。
- Class.super
Class
对象列表,用于描述所描述类的直接基类。 被命名为超类但不能被 readmodule_ex() 发现的类被列为带有类名的字符串,而不是Class
对象。
- Class.methods
- 字典映射方法名称到行号。 这可以从较新的儿童词典派生,但仍然是为了向后兼容。