Spec-Zone.ru › Python 3.8

pyclbr — Поддержка просмотра модулей Python

Исходный код: Lib/pyclbr.py

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

pyclbr.readmodule(module, path=None)

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

Эта функция — оригинальный интерфейс и сохраняется только для обратной совместимости. Она возвращает отфильтрованную версию следующего.

pyclbr.readmodule_ex(module, path=None)

Возвращает древовидную структуру на основе словаря, содержащую описатели функций или классов для каждой функции и класса, определённых в модуле с помощью инструкции def или class. Возвращаемый словарь сопоставляет имена функций и классов уровня модуля их описателям. Вложенные объекты помещаются в словарь дочерних элементов своего родительского объекта. Как и в readmodule, module задаёт имя модуля для чтения, а path добавляется в sys.path. Если читаемый модуль является пакетом, возвращаемый словарь имеет ключ '__path__', значение которого — список, содержащий путь поиска в пакете.

Введено в версии 3.7: Описатели вложенных определений. К ним можно получить доступ через новый атрибут children. Каждый из них имеет новый атрибут parent.

Описатели, возвращаемые этими функциями, являются экземплярами классов Function и Class. Пользователям не следует создавать экземпляры этих классов.

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

Экземпляры класса Function описывают функции, определённые инструкциями def. У них есть следующие атрибуты:

Function.file

Имя файла, в котором определена функция.

Function.module

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

Function.name

Имя функции.

Function.lineno

Номер строки в файле, где начинается определение.

Function.parent

Для функций верхнего уровня — None. Для вложенных функций — родительский объект.

Введено в версии 3.7.

Function.children

Словарь, сопоставляющий имена описателям вложенных функций и классов.

Введено в версии 3.7.

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

Экземпляры класса Class описывают классы, определённые инструкциями class. У них те же атрибуты, что и у функций, плюс два дополнительных.

Class.file

Имя файла, в котором определён класс.

Class.module

Имя модуля, определяющего класс.

Class.name

Имя класса.

Class.lineno

Номер строки в файле, где начинается определение.

Class.parent

Для классов верхнего уровня — None. Для вложенных классов — родительский объект.

Введено в версии 3.7.

Class.children

Словарь, сопоставляющий имена описателям вложенных функций и классов.

Введено в версии 3.7.

Class.super

Список объектов Class, описывающих непосредственные базовые классы описываемого класса. Классы, которые названы как суперклассы, но которые невозможно обнаружить с помощью readmodule_ex(), перечислены как строка с именем класса вместо объектов Class.

Class.methods

Словарь, сопоставляющий имена методов номерам строк. Это можно получить из нового словаря children, но он сохраняется для обратной совместимости.

© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/library/pyclbr.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API