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

---

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

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

---

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

## 31.9.1. Объекты класса

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

#### `Class.module`

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

#### `Class.name`

Имя класса.

#### `Class.super`

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

#### `Class.methods`

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

#### `Class.file`

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

#### `Class.lineno`

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

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

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

#### `Function.module`

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

#### `Function.name`

Имя функции.

#### `Function.file`

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

#### `Function.lineno`

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