Учитывая файл python, я хочу узнать все области и декларации для идентификаторов в файле.Есть ли анализатор области для Python?
Например, если этот файл:
import a
from b import xyz
def my_func(g):
print "2"
my_func(0)
a.function_in_a(3)
xyz(4)
Я хочу выход быть:
- на линии 7,
my_func
относится кmy_func
, определенной в строке 4 этого файла - на строка 8,
a
относится к модулю a.function_in_a
относится к функции, определенной в модуле - на линии 9,
xyz
относится к функции, определенной в модуле б
Есть библиотека, которая делает это для меня? В основном я пытаюсь использовать в контексте IDE функциональность/код автозаполнения/понимания областей переменных. В принципе, я заинтересован в понимании местоположения определения идентификатора (переменной, функции и т. Д.), Подобно тому, как это определяет IDE, например PyCharm.
Там нет деклараций в Python только определения (имя привязки). Если имя не относится к объекту; это NameError/UnboundLocalError. Посмотрите на jedi, библиотеки канатов, хотя Python слишком динамичен, чтобы получить ответ во всех случаях. – jfs
Пакет, подобный flake8, показывает этот материал; на более низком уровне вы можете использовать AST. –