TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки
Python Заметки avatar

TGINSIGHT POST

Post #204

@pythonotes

Python Заметки

Прегледи2,750Број на прегледи
Објавено20 јан.20.01.2021 г., 09:00
Содржина

Содржина на објавата

Как получить минимальную информацию о модули не импортируя сам модуль? Стандартная библиотека pyclbr позволяет это сделать. Она не импортит модуль, а только парсит код и возвращает список имеющихся в модуле классов и функций в виде специальных объектов. Например, вы сможете узнать какие в модуле есть классы, от чего они наследованы и какие у них методы. Возьмём для примера такой простой модуль # mymodule.py class Cls1: def __init__(self): pass def execute(self): pass class Cls2(Cls1): pass def start(): pass Запускаем анализ >>> import pyclbr >>> mdata = pyclbr.readmodule_ex('mymodule') # список всего что нашлось >>> print(mdata) {'Cls1': <pyclbr.Class object at 0x000001B62F9D4288>, 'Cls2': <pyclbr.Class object at 0x000001B62F9DD908>, 'start': <pyclbr.Function object at 0x000001B62F8A8288>} # список методов класса (имя метода и строка объявления) >>> mdata['Cls1'].methods {'__init__': 3, 'execute': 6} # получения наследуемых классов >>> mdata['Cls2'].super [<pyclbr.Class object at 0x000001B62F9D4288>] >>> mdata['Cls2'].super[0].name 'Cls1' #libs#tricks