Python Glossary English

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Сообщить о неточности