все Python 3astпонятие
ast.Interactive
корень и базовые узлы
Корневой узел для режима mode='single': одна интерактивная строка, как во входе REPL; в body — список инструкций.
Синтаксис
ast.parse(source, mode='single') # → ast.Interactive
Отличие от Module не в форме, а в смысле: код, скомпилированный в режиме 'single', печатает значения выражений-инструкций, как это делает REPL, — exec(compile('1 + 2', '<in>', 'single')) выведет 3, а режим 'exec' промолчит. Режим принимает одну логическую строку или одну составную инструкцию; две строки подряд — SyntaxError.
Примеры
import ast
tree = ast.parse('x = 1; y = 2', mode='single')
print(type(tree).__name__, len(tree.body)) # → Interactive 2
exec(compile(ast.parse('1 + 2', mode='single'), '<in>', 'single'))
# → 3
import ast
try:
ast.parse('x = 1\ny = 2', mode='single')
except SyntaxError as e:
print(type(e).__name__) # → SyntaxError
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности