Документация Python неофициальный перевод
Содержание страницы

32.9. pyclbr – Поддержка обозревателя классов Pythonpyclbr – Python class browser support

Исходный код: Lib/pyclbr.py


Модуль pyclbr можно использовать для получения некоторой ограниченной информации о классах, методах и функциях верхнего уровня, определённых в модуле. Предоставляемой информации достаточно для реализации традиционного трёхпанельного браузера классов. Информация извлекается из исходного кода, а не путём импорта модуля, поэтому этот модуль безопасно использовать с недоверенным кодом. Это ограничение делает невозможным использование этого модуля с модулями, не реализованными на Python, включая все стандартные и опциональные модули расширения.

pyclbr.readmodule(module, path=None)

Читает модуль и возвращает словарь, отображающий имена классов в объекты-дескрипторы классов. Параметр module должен быть именем модуля в виде строки; это может быть имя модуля внутри пакета. Параметр path должен быть последовательностью и используется для дополнения значения sys.path, которое используется для поиска исходного кода модуля.

pyclbr.readmodule_ex(module, path=None)

Как и readmodule(), но возвращаемый словарь, помимо отображения имён классов в объекты-дескрипторы классов, также отображает имена функций верхнего уровня в объекты-дескрипторы функций. Более того, если читаемый модуль является пакетом, ключ '__path__' в возвращаемом словаре содержит в качестве значения список с путём поиска пакета.

32.9.1. Объекты классовClass Objects

Объекты Class, используемые как значения в словаре, возвращаемом readmodule() и readmodule_ex(), предоставляют следующие атрибуты данных:

Class.module

Имя модуля, определяющего класс, описываемый дескриптором класса.

Class.name

Имя класса.

Class.super

Список объектов Class, описывающих непосредственные базовые классы описываемого класса. Классы, которые названы как суперклассы, но не обнаруживаются с помощью readmodule(), перечисляются в виде строки с именем класса вместо объектов Class.

Class.methods

Словарь, отображающий имена методов в номера строк.

Class.file

Имя файла, содержащего оператор class, определяющий класс.

Class.lineno

Номер строки оператора class в файле, указанном file.

32.9.2. Объекты функцийFunction Objects

Объекты Function, используемые как значения в словаре, возвращаемом readmodule_ex(), предоставляют следующие атрибуты:

Function.module

Имя модуля, определяющего функцию, описываемую дескриптором функции.

Function.name

Имя функции.

Function.file

Имя файла, содержащего оператор def, определяющий функцию.

Function.lineno

Номер строки оператора def в файле, указанном file.