Ranc58
@Ranc58
Backend python developer

Как получить список имен переменных в функции с помощью ast?

Как получить с помощью ast имена всех переменных внутри функций?
Если использую такой код:
vars_names = []
    for node in ast.walk(tree):
        if not (isinstance(node, ast.FunctionDef)):
            continue
        for var in node.body:
            if isinstance(var.value, ast.Name):
                vars_names.append(var.value.id.lower())
    print(vars_names)

Но вылетает ошибка:
AttributeError: 'For' object has no attribute 'value'

Если разбираюсь с For - то еще вылезают проблемы с While и так далее.
  • Вопрос задан
  • 334 просмотра
Решения вопроса 1
aRegius
@aRegius
Python Enthusiast
func.__code__.co_varnames

>>> def my_func():
	     x = 'spam'
	     y = 5
	     print(x*y)
	
>>> my_func.__code__.co_varnames
('x', 'y')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы