成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python_ast.h相關(guān)代碼的詳細(xì)介紹

開發(fā) 后端
咋Python_ast.h的相關(guān)實際應(yīng)用中你如果對相關(guān)的代碼或是實際相關(guān)應(yīng)用操作過程中的具體操作有不解的地方,你就可以借鑒以下的文章對其進(jìn)行了解。

在Python_ast.h中AST所用到的類型定義,我們以stmt_ty類型的相關(guān)代碼為例來介紹Python_ast.h中AST所用到的類型,希望大姐在瀏覽完以下的文章會在Python_ast.h中AST的相關(guān)實際應(yīng)用中有所收獲。

AST所用到的類型均定義在Python_ast.h中,以stmt_ty類型為例:

 

  1. enum _stmt_kind {FunctionDef_kind=1ClassDef_kind=2Return_kind=3,  
  2. Delete_kind=4Assign_kind=5AugAssign_kind=6Print_kind=7,  
  3. For_kind=8While_kind=9If_kind=10With_kind=11,  
  4. Raise_kind=12TryExcept_kind=13TryFinally_kind=14,  
  5. Assert_kind=15Import_kind=16ImportFrom_kind=17,  
  6. Exec_kind=18Global_kind=19Expr_kind=20Pass_kind=21,  
  7. Break_kind=22Continue_kind=23};  
  8. struct _stmt {  
  9. enum _stmt_kind kind;  
  10. union {  
  11. struct {  
  12. identifier name;  
  13. arguments_ty args;  
  14. asdl_seq *body;  
  15. asdl_seq *decorators;  
  16. } FunctionDef;  
  17. struct {  
  18. identifier name;  
  19. asdl_seq *bases;  
  20. asdl_seq *body;  
  21. } ClassDef;  
  22. struct {  
  23. expr_ty value;  
  24. } Return;  

 

 

過長,中間從略

 

 

  1. struct {  
  2. expr_ty value;  
  3. } Expr;  
  4. } v;  
  5. int lineno;  
  6. int col_offset;  
  7. };  
  8. typedef struct _stmt *stmt_ty;      

stmt_ty是語句結(jié)點類型,實際上是_stmt結(jié)構(gòu)的指針。_stmt結(jié)構(gòu)比較長,但有著很清晰的Pattern:

1. 第一個Field為kind,代表語句的類型。_stmt_kind定義了_stmt的所有可能的語句類型,從函數(shù)定義語句,類定義語句直到Continue語句共有23種類型。

2. 接下來是一個union v,每個成員均為一個struct,分別對應(yīng)_stmt_kind中的一種類型,如_stmt.v.FunctionDef對應(yīng)了_stmt_kind枚舉中的FunctionDef_Kind,也就是說,當(dāng)_stmt.kind == FunctionDef_Kind時,_stmt.v.FunctionDef中保存的就是對應(yīng)的函數(shù)定義語句的具體內(nèi)容。#t#

3. 其他數(shù)據(jù),如lineno和col_offset

大部分AST結(jié)點類型均是按照類似的pattern來定義的,不再贅述。除此之外,另外有一種比較簡單的AST類型如operator_ty,expr_context_ty等,由于這些類型仍以_ty結(jié)尾,因此也可以認(rèn)為是AST的結(jié)點,但實際上,這些類型只是簡單的枚舉類型,并非指針。因此在以后的文章中,并不把此類AST類型作為結(jié)點看待,而是作為簡單的枚舉處理

以上就是對AST所用到的類型均定義在Python_ast.h中,以stmt_ty類型為例相關(guān)的內(nèi)容的介紹,以及其具有清晰的Pattern的具體體現(xiàn),忘你會有所收獲。

責(zé)任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-03-25 13:42:37

Python CST

2010-03-25 16:51:12

Python程序

2010-03-25 11:30:25

2009-12-25 16:51:37

ADO參數(shù)

2009-07-07 17:01:09

MyServlet

2010-03-03 17:21:42

Python操作注冊表

2010-03-19 14:44:30

Python模塊級函數(shù)

2009-12-25 09:37:18

ASP.NETWeb

2024-06-13 10:05:36

2010-03-18 14:27:53

Java Thread

2009-11-30 11:14:57

VS2003 WebS

2010-03-23 16:16:21

Python文件

2010-04-08 09:27:44

Oracle 安裝腳本

2010-03-29 17:37:17

Nginx resin

2010-01-05 09:36:40

ADO超時

2010-02-05 17:04:31

Android版本

2010-03-18 14:55:17

Python數(shù)據(jù)庫連接

2010-03-25 10:13:03

Python代碼

2010-03-26 17:17:37

Python特色

2010-03-18 15:47:07

Java創(chuàng)建線程
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品网| 日本粉嫩一区二区三区视频 | 欧美精品tv | 欧美国产视频 | 久久乐国产精品 | 7777精品伊人久久精品影视 | av黄色片| 国产日韩欧美电影 | 亚洲精品在线视频 | 黄色电影在线免费观看 | 91网站在线播放 | 国产乱精品一区二区三区 | 日韩福利在线 | 欧美精品tv | 人妖无码 | 亚洲精品久久国产高清情趣图文 | 国产精品99久久久久久人 | 亚洲精品一区中文字幕 | 国产精品高潮呻吟久久久久 | 国产亚洲精品美女久久久久久久久久 | 亚洲视频在线观看 | 成人网av | 日本成人综合 | 久久看看| 欧美一区二区三区四区在线 | 精品三级在线观看 | 国产激情片在线观看 | 国产观看 | 久久久人 | 一区二区三区久久久 | 日韩一区二区av | 亚洲中午字幕 | 精品91久久久 | 亚洲国产精品精华素 | 久久久精品国产 | 国产91 在线播放 | 91精品国产色综合久久 | 日韩和的一区二区 | 欧美日韩电影免费观看 | 欧美综合久久 | 成人高清视频在线观看 |