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

---

# `pyclbr` – поддержка браузера классов Python

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

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

Читает модуль и возвращает словарь, сопоставляющий имена классов с объектами-дескрипторами классов. Параметр

*module*

должен быть именем модуля в виде строки; это может быть имя модуля внутри пакета. Параметр

*path*

должен быть последовательностью и используется для дополнения значения

`sys.path`

, с помощью которого находится исходный код модуля.

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

Действует как

[`readmodule()`](https://python-all.ru/3.0/library/pyclbr.html#pyclbr.readmodule)

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

`'__path__'`

в возвращаемом словаре содержит в качестве значения список с путём поиска пакета.

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

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

#### `[pyclbr.Class.module]Class.module`

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

#### `[pyclbr.Class.name]Class.name`

Имя класса.

#### `[pyclbr.Class.super]Class.super`

Список объектов

`Class`

, описывающих непосредственные базовые классы описываемого класса. Классы, которые указаны как суперклассы, но не обнаружены

[`readmodule()`](https://python-all.ru/3.0/library/pyclbr.html#pyclbr.readmodule)

, перечисляются в виде строки с именем класса вместо объектов

`Class`

.

#### `[pyclbr.Class.methods]Class.methods`

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

#### `[pyclbr.Class.file]Class.file`

Имя файла, содержащего оператор

`class`

, определяющий класс.

#### `[pyclbr.Class.lineno]Class.lineno`

Номер строки оператора

`class`

в файле, указанном в

[`file`](https://python-all.ru/3.0/library/pyclbr.html#pyclbr.Class.file)

.

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

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

#### `[pyclbr.Function.module]Function.module`

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

#### `[pyclbr.Function.name]Function.name`

Имя функции.

#### `[pyclbr.Function.file]Function.file`

Имя файла, содержащего оператор

`def`

, определяющий функцию.

#### `[pyclbr.Function.lineno]Function.lineno`

Номер строки оператора

`def`

в файле, указанном в

[`file`](https://python-all.ru/3.0/library/pyclbr.html#pyclbr.Function.file)

.
