當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python ast.AST用法及代碼示例


用法:

class ast.AST

這是所有 AST 節點類的基礎。實際的節點類派生自Parser/Python.asdl 文件,該文件在下麵複製。它們在 _ast C 模塊中定義,並在 ast 中重新導出。

為抽象語法中的每個 left-hand 邊符號定義了一個類(例如,ast.stmtast.expr)。此外,在right-hand 一側為每個構造函數定義了一個類;這些類繼承自left-hand 側樹的類。例如,ast.BinOp 繼承自 ast.expr 。對於具有備選方案的生產規則(又名“sums”),left-hand 側類是抽象的:隻創建特定構造器節點的實例。

ast.T 類的構造函數解析其參數如下:

  • 如果有位置參數,則必須與 T._fields 中的項目一樣多;它們將被分配為這些名稱的屬性。
  • 如果有關鍵字參數,它們會將相同名稱的屬性設置為給定值。

例如,要創建和填充 ast.UnaryOp 節點,您可以使用

node = ast.UnaryOp()
node.op = ast.USub()
node.operand = ast.Constant()
node.operand.value = 5
node.operand.lineno = 0
node.operand.col_offset = 0
node.lineno = 0
node.col_offset = 0

或更緊湊的

node = ast.UnaryOp(ast.USub(), ast.Constant(5, lineno=0, col_offset=0),
                   lineno=0, col_offset=0)

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 ast.AST。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。