Python 3.9+astфункция
ast.unparse()
вспомогательные функции
Превращает дерево AST обратно в строку исходного кода. Нужна после правки дерева, чтобы увидеть или сохранить получившийся код.
Синтаксис
ast.unparse(ast_obj)
Возвращает эквивалентный, а не исходный код: комментарии пропадают (их нет в дереве), форматирование и лишние скобки нормализуются, кавычки строк могут смениться. Поэтому parse → unparse нельзя использовать для бережной правки файла — нужен инструмент, хранящий форматирование (например, libcst). Появилась в 3.9; очень глубокое выражение даёт RecursionError.
Примеры
import ast
src = "x = (1) # счётчик\nif x :\n y = \"a\""
print(ast.unparse(ast.parse(src))) # → x = 1 / if x: / y = 'a'
import ast
tree = ast.parse('a + b', mode='eval')
tree.body.op = ast.Mult()
print(ast.unparse(tree)) # → a * b
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности