たくさんの有用な演算を構文解析とバイトコード生成の間に行うことができますが、もっとも単純な演算は何もしないことです。このため、parserモジュールを使って中間データ構造を作ることは次のコードと等価です。
>>> code = compile('a + 5', 'file.py', 'eval') >>> a = 5 >>> eval(code) 10
parserモジュールを使った等価な演算はやや長くなりますが、ASTオブジェクトとして中間内部解析木が維持されるようにします:
>>> import parser >>> ast = parser.expr('a + 5') >>> code = ast.compile('file.py') >>> a = 5 >>> eval(code) 10
ASTとコードオブジェクトの両方が必要なアプリケーションでは、このコードを簡単に利用できる関数にまとめることができます:
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()
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。