Anche se si possono eseguire molte operazioni utili fra l'analisi e la generazione del bytecode, la cosa più semplice è non fare nulla: a tal proposito, l'uso del modulo parser per produrre una struttura di dati intermedia equivale al codice:
>>> code = compile('a + 5', 'file.py', 'eval') >>> a = 5 >>> eval(code) 10
L'operazione equivalente, utilizzando il modulo parser, richiede leggermente più tempo e permette all'albero di analisi interno intermedio di essere gestito come un oggetto AST.
>>> import parser >>> ast = parser.expr('a + 5') >>> code = ast.compile('file.py') >>> a = 5 >>> eval(code) 10
Un'applicazione che richieda sia gli oggetti AST che gli oggetti codice può raggruppare questo codice in funzioni già disponibili:
import parser def load_suite(source_string): ast = parser.suite(source_string) return ast, ast.compile() def load_expression(source_string): ast = parser.expr(source_string) return ast, ast.compile()
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.