2015-08-15 3 views
3

Учитывая файл 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.

+0

Там нет деклараций в Python только определения (имя привязки). Если имя не относится к объекту; это NameError/UnboundLocalError. Посмотрите на jedi, библиотеки канатов, хотя Python слишком динамичен, чтобы получить ответ во всех случаях. – jfs

+0

Пакет, подобный flake8, показывает этот материал; на более низком уровне вы можете использовать AST. –

ответ

Смежные вопросы