Получить полное имя функции Python без выполнения кода - PullRequest
0 голосов
/ 19 мая 2018

Я пишу библиотеку, чтобы помочь мне визуализировать некоторые показатели моего собственного кода.Это привело меня к необходимости полного имени любого вызова функции в коде, который я анализирую.

Я надеялся, что использование модуля AST в Python предоставит мне это.Если я пройдусь по дереву, он предоставит узлы для любых импортов и псевдонимов, а также предоставит узлы для реальных вызовов функций.

Однако попытка создать полное имя из этих узлов не простая задача, и я сомневаюсь, что она справится со всеми ситуациями.Как мне это сделать?(Моя среда IDE поддерживает функцию «Перейти к определению», поэтому я знаю, что это возможно.)


Здесь приведено довольно изображение узла вызова функции, обратите внимание, что имя не является полным именем:

Call(func=Name(id='fib', ctx=Load()), args=[
    Num(n=100),
  ], keywords=[])
...