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

pyclbr.md

110 строк · 7.4 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.16/library/pyclbr.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `pyclbr` – поддержка браузера модулей Python89**Исходный код:** [Lib/pyclbr.py](https://python-all.ru/src/main/Lib/pyclbr.py)1011---1213Модуль `pyclbr` предоставляет ограниченную информацию о функциях, классах и методах, определённых в модуле, написанном на Python. Этой информации достаточно для реализации браузера модулей. Информация извлекается из исходного кода Python, а не путём импорта модуля, поэтому данный модуль безопасно использовать с недоверенным кодом. Это ограничение делает невозможным использование этого модуля с модулями, реализованными не на Python, включая все стандартные и опциональные модули расширения.1415#### `pyclbr.readmodule(module, path=None)`1617Возвращает словарь, сопоставляющий имена классов уровня модуля с дескрипторами классов. Если возможно, включаются дескрипторы для импортированных базовых классов. Параметр *module* – это строка с именем модуля для чтения; это может быть имя модуля внутри пакета. Если указан, *path* – это последовательность путей к каталогам, добавляемая к `sys.path`, которая используется для поиска исходного кода модуля.1819Эта функция – исходный интерфейс, сохранённый только для обратной совместимости. Она возвращает отфильтрованную версию следующего.2021#### `pyclbr.readmodule_ex(module, path=None)`2223Возвращает словарное дерево, содержащее дескрипторы функций или классов для каждой функции и класса, определённых в модуле с помощью оператора `def` или `class`. Возвращаемый словарь сопоставляет имена функций и классов уровня модуля с их дескрипторами. Вложенные объекты помещаются в словарь children своего родителя. Как и в readmodule, *module* задаёт имя читаемого модуля, а *path* добавляется к sys.path. Если читаемый модуль является пакетом, возвращаемый словарь содержит ключ `'__path__'`, значением которого является список, содержащий путь поиска пакета.2425Добавлено в версии 3.7: Дескрипторы для вложенных определений. Доступ к ним осуществляется через новый атрибут children. Каждый имеет новый атрибут parent.2627Дескрипторы, возвращаемые этими функциями, являются экземплярами классов Function и Class. Пользователи не должны создавать экземпляры этих классов.2829## Объекты функций3031#### `class pyclbr.Function`3233Экземпляры класса `Function` описывают функции, определённые с помощью операторов def. Они имеют следующие атрибуты:3435#### `file`3637Имя файла, в котором определена функция.3839#### `module`4041Имя модуля, определяющего описываемую функцию.4243#### `name`4445Имя функции.4647#### `lineno`4849Номер строки в файле, с которой начинается определение.5051#### `parent`5253Для функций верхнего уровня – `None`. Для вложенных функций – родитель.5455Добавлено в версии 3.7.5657#### `children`5859[`dictionary`](https://python-all.ru/3.16/library/stdtypes.html#dict), сопоставляющее имена с дескрипторами для вложенных функций и классов.6061Добавлено в версии 3.7.6263#### `is_async`6465`True` для функций, определённых с префиксом [`async`](https://python-all.ru/3.16/reference/compound_stmts.html#async-def), `False` в противном случае.6667Добавлено в версии 3.10.6869## Объекты класса7071#### `class pyclbr.Class`7273Экземпляры класса `Class` описывают классы, определённые с помощью операторов class. Они имеют те же атрибуты, что и [`Functions`](https://python-all.ru/3.16/library/pyclbr.html#pyclbr.Function), и ещё два.7475#### `file`7677Имя файла, в котором определён класс.7879#### `module`8081Имя модуля, определяющего описываемый класс.8283#### `name`8485Имя класса.8687#### `lineno`8889Номер строки в файле, с которой начинается определение.9091#### `parent`9293Для классов верхнего уровня – `None`. Для вложенных классов – родительский класс.9495Добавлено в версии 3.7.9697#### `children`9899Словарь, отображающий имена в дескрипторы для вложенных функций и классов.100101Добавлено в версии 3.7.102103#### `super`104105Список объектов `Class`, описывающих непосредственные базовые классы описываемого класса. Классы, которые указаны как суперклассы, но не обнаруживаются с помощью [`readmodule_ex()`](https://python-all.ru/3.16/library/pyclbr.html#pyclbr.readmodule_ex), перечисляются как строка с именем класса вместо объектов `Class`.106107#### `methods`108109Словарь [`dictionary`](https://python-all.ru/3.16/library/stdtypes.html#dict), отображающий имена методов в номера строк. Его можно получить из более нового словаря [`children`](https://python-all.ru/3.16/library/pyclbr.html#pyclbr.Class.children), но он сохраняется для обратной совместимости.110