2
假設一個ast
節點可以自行評估,但不足以滿足例如ast.literal_eval
等。列表理解將ast節點轉換爲python對象
src = '[i**2 for i in range(10)]'
a = ast.parse(src)
現在a.body[0]
是ast.Expr
和a.body[0].value
的ast.ListComp
。我想獲得eval(src)
將導致的列表,但只給出ast.Expr
節點。
我試過,但似乎並沒有得到它的工作。例如。 'compile(a.body [0],'','eval')'給出錯誤'expected expression node,got Expr'。 (Expr'不只是'Expression'的縮寫嗎?) –
否 - 'Expr'是'Expression'的主體中包含的內容。嘗試傳遞'a'而不是'a.body [0]'。 (來自[語法](http://docs.python.org/library/ast.html#abstract-grammar)。) – Amber
嘗試使用'ast.parse(src,mode ='eval')'得到'表達式'對象。 – Amber