Скажите, у меня есть следующий код в code.py:
from foo import bar
from foo2 import bar2
from foo3 import wrapper
class A(bar):
def m1(self,x):
return wrapper(x)
Затем у меня есть ссылка на объект A в переменной "obj", и я получаю код для этого объекта следующим образом:
c = inspect.getsource(obj)
, который возвращает:
class A(bar):
pass
Мне нужно иметь возможность проанализировать «inspect.getsource (obj)», чтобы узнать, что класс A зависит от «из панели импорта foo» и «от оболочки импорта foo3» в верхней части файла, возвращаемого «inspect». .getsourcefile (объект)».
Как мне этого добиться?
Единственный известный мне способ приблизиться - использовать modulefinder , но он работает на весь файл и даст мне все три импорта, а не только тот, который используется интересующим кодом.
~~~~~~~~~~~~~~~~~~~~~~~~~~
Изменить: обновленное определение
~~~~~~~~~~~~~~~~~~~~~~~~~~