Python Glossary English

Python 3.9+astфункция

ast.main()

вспомогательные функции

Точка входа командной строки python -m ast: разбирает файл или stdin и печатает дерево через dump с отступами. Есть с 3.9.

Синтаксис

python -m ast [-m mode] [-a] [-i indent] [infile]

Сама функция в документации не описана — описана команда python -m ast файл.py, её и используют. main читает аргументы из sys.argv (с 3.14 можно передать список args), печатает в stdout и ничего не возвращает. Вывод — тот же ast.dump, поэтому и он различается между версиями; с 3.14 добавлены ключи --feature-version, -O и --show-empty, с 3.15 вывод в терминале подсвечивается.

Примеры

import ast, contextlib, io, sys
with open('demo.py', 'w', encoding='utf-8') as f:
    f.write('x = 1\n')
sys.argv = ['ast', 'demo.py']
buf = io.StringIO()
with contextlib.redirect_stdout(buf):
    ast.main()
print(buf.getvalue().splitlines()[0])  # → Module(
print('Assign(' in buf.getvalue())  # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности