3.14.3 Queries on AST Objects

ASTが数式、またはスイートとして作られたかどうかを、アプリケーションが決定するための2つの関数が提供されています。どちらの関数も、ASTオブジェクトがソースコードからexpr()suite()によって、または解析木からsequence2ast()によって作られたかどうかを決定するのには使われません。

isexpr (ast)
ast'eval'形式を表す時は、この関数はtrueを返し、そうでなければfalseを返します。通常コードオブジェクトは、組み込み関数を使ってこの情報を尋ねる事ができないので、この関数は役に立ちます。compileast()によって作られたコードオブジェクトは、どちらもこのように尋ねる事ができず、組み込み関数compile() によって作られたコードオブジェクトと全く同じであることに注意して下さい。

issuite (ast)
この関数は、ASTオブジェクトが、一般にスイートとして知られる'exec'形式を表すかどうかを報告するという点で、isexpr()と似ています。 この関数が"not isexpr(ast)"と等価であると仮定するのは、将来additional syntactic fragmentsがサポートされるかもしれないので安全ではありません。


guido@python.org