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

31.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__' в возвращаемом словаре содержит в качестве значения список с путём поиска пакета.

31.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.

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

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

Function.module

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

Function.name

Имя функции.

Function.file

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

Function.lineno

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