pyclbr — Python module browser support - Python 3.11.1 documentation 编辑

Source code: Lib/pyclbr.py


The pyclbr module provides limited information about the functions, classes, and methods defined in a Python-coded module. The information is sufficient to implement a module browser. The information is extracted from the Python source code rather than by importing the module, so this module is safe to use with untrusted code. This restriction makes it impossible to use this module with modules not implemented in Python, including all standard and optional extension modules.

pyclbr.readmodule(module, path=None)

Return a dictionary mapping module-level class names to class descriptors. If possible, descriptors for imported base classes are included. Parameter module is a string with the name of the module to read; it may be the name of a module within a package. If given, path is a sequence of directory paths prepended to sys.path, which is used to locate the module source code.

This function is the original interface and is only kept for back compatibility. It returns a filtered version of the following.

pyclbr.readmodule_ex(module, path=None)

Return a dictionary-based tree containing a function or class descriptors for each function and class defined in the module with a def or class statement. The returned dictionary maps module-level function and class names to their descriptors. Nested objects are entered into the children dictionary of their parent. As with readmodule, module names the module to be read and path is prepended to sys.path. If the module being read is a package, the returned dictionary has a key '__path__' whose value is a list containing the package search path.

New in version 3.7: Descriptors for nested definitions. They are accessed through the new children attribute. Each has a new parent attribute.

The descriptors returned by these functions are instances of Function and Class classes. Users are not expected to create instances of these classes.

Function Objects

Class Function instances describe functions defined by def statements. They have the following attributes:

Function.file

Name of the file in which the function is defined.

Function.module

The name of the module defining the function described.

Function.name

The name of the function.

Function.lineno

The line number in the file where the definition starts.

Function.parent

For top-level functions, None. For nested functions, the parent.

New in version 3.7.

Function.children

A dictionary mapping names to descriptors for nested functions and classes.

New in version 3.7.

Function.is_async

True for functions that are defined with the async prefix, False otherwise.

New in version 3.10.

Class Objects

Class Class instances describe classes defined by class statements. They have the same attributes as Functions and two more.

Class.file

Name of the file in which the class is defined.

Class.module

The name of the module defining the class described.

Class.name

The name of the class.

Class.lineno

The line number in the file where the definition starts.

Class.parent

For top-level classes, None. For nested classes, the parent.

New in version 3.7.

Class.children

A dictionary mapping names to descriptors for nested functions and classes.

New in version 3.7.

Class.super

A list of Class objects which describe the immediate base classes of the class being described. Classes which are named as superclasses but which are not discoverable by readmodule_ex() are listed as a string with the class name instead of as Class objects.

Class.methods

A dictionary mapping method names to line numbers. This can be derived from the newer children dictionary, but remains for back-compatibility.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:81 次

字数:4676

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文