Python 3.8+astфункция
ast.get_source_segment()
вспомогательные функции
Возвращает кусок исходного текста, из которого получился узел. Позволяет показать учащемуся точный фрагмент его кода, а не восстановленный unparse.
Синтаксис
ast.get_source_segment(source, node, *, padded=False)
Нужен тот же исходный текст, что передавался в parse: позиции считаются по нему. Для узла без позиций (созданного вручную) вернёт None, а не ошибку. Многострочную инструкцию отдаёт без отступа первой строки; padded=True дополняет её пробелами до исходной колонки. Появилась в 3.8.
Примеры
import ast
src = 'total = price * qty'
node = ast.parse(src).body[0].value
print(ast.get_source_segment(src, node)) # → price * qty
print(ast.unparse(node)) # → price * qty
print(ast.get_source_segment(src, ast.Name(id='x'))) # → None
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности