> **Источник:** https://python-all.ru/3.5/library/pyclbr.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 32.9. [`pyclbr`](https://python-all.ru/3.5/library/pyclbr.html#module-pyclbr) – Поддержка обозревателя классов Python

**Исходный код:** [Lib/pyclbr.py](https://python-all.ru/src/3.5/Lib/pyclbr.py)

---

Модуль [`pyclbr`](https://python-all.ru/3.5/library/pyclbr.html#module-pyclbr) можно использовать для получения некоторой ограниченной информации о классах, методах и функциях верхнего уровня, определённых в модуле. Предоставляемой информации достаточно для реализации традиционного трёхпанельного браузера классов. Информация извлекается из исходного кода, а не путём импорта модуля, поэтому этот модуль безопасно использовать с недоверенным кодом. Это ограничение делает невозможным использование этого модуля с модулями, не реализованными на Python, включая все стандартные и опциональные модули расширения.

#### `pyclbr.readmodule(module, path=None)`

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

#### `pyclbr.readmodule_ex(module, path=None)`

Как и [`readmodule()`](https://python-all.ru/3.5/library/pyclbr.html#pyclbr.readmodule), но возвращаемый словарь, помимо отображения имён классов в объекты-дескрипторы классов, также отображает имена функций верхнего уровня в объекты-дескрипторы функций. Более того, если читаемый модуль является пакетом, ключ `'__path__'` в возвращаемом словаре содержит в качестве значения список с путём поиска пакета.

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

Объекты `Class`, используемые как значения в словаре, возвращаемом [`readmodule()`](https://python-all.ru/3.5/library/pyclbr.html#pyclbr.readmodule) и [`readmodule_ex()`](https://python-all.ru/3.5/library/pyclbr.html#pyclbr.readmodule_ex), предоставляют следующие атрибуты данных:

#### `Class.module`

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

#### `Class.name`

Имя класса.

#### `Class.super`

Список объектов `Class`, описывающих непосредственные базовые классы описываемого класса. Классы, которые названы как суперклассы, но не обнаруживаются с помощью [`readmodule()`](https://python-all.ru/3.5/library/pyclbr.html#pyclbr.readmodule), перечисляются в виде строки с именем класса вместо объектов `Class`.

#### `Class.methods`

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

#### `Class.file`

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

#### `Class.lineno`

Номер строки оператора `class` в файле, указанном [`file`](https://python-all.ru/3.5/library/pyclbr.html#pyclbr.Class.file).

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

Объекты `Function`, используемые как значения в словаре, возвращаемом [`readmodule_ex()`](https://python-all.ru/3.5/library/pyclbr.html#pyclbr.readmodule_ex), предоставляют следующие атрибуты:

#### `Function.module`

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

#### `Function.name`

Имя функции.

#### `Function.file`

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

#### `Function.lineno`

Номер строки оператора `def` в файле, указанном [`file`](https://python-all.ru/3.5/library/pyclbr.html#pyclbr.Function.file).
