pyclbr —- Python class browser support

Source code:Lib/pyclbr.py


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

  • pyclbr.readmodule(module, path=None)
  • Return a dictionary mapping module-level class names to classdescriptors. If possible, descriptors for imported base classes areincluded. Parameter module is a string with the name of the moduleto 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.

  • pyclbr.readmoduleex(_module, path=None)

  • Return a dictionary-based tree containing a function or classdescriptors for each function and class defined in the module with adef or class statement. The returned dictionary mapsmodule-level function and class names to their descriptors. Nestedobjects are entered into the children dictionary of their parent. Aswith readmodule, module names the module to be read and path isprepended to sys.path. If the module being read is a package, thereturned dictionary has a key 'path' whose value is a listcontaining the package search path.

3.7 新版功能: Descriptors for nested definitions. They are accessed through thenew children attribute. Each has a new parent attribute.

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

函数对象

Class Function instances describe functions defined by defstatements. 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.

3.7 新版功能.

  • Function.children
  • A dictionary mapping names to descriptors for nested functions andclasses.

3.7 新版功能.

类对象

Class Class instances describe classes defined by classstatements. 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.

3.7 新版功能.

  • Class.children
  • A dictionary mapping names to descriptors for nested functions andclasses.

3.7 新版功能.

  • Class.super
  • A list of Class objects which describe the immediate baseclasses of the class being described. Classes which are named assuperclasses but which are not discoverable by readmodule_ex()are listed as a string with the class name instead of asClass objects.

  • Class.methods

  • A dictionary mapping method names to line numbers. This can bederived from the newer children dictionary, but remains forback-compatibility.