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

Python程序執行的第一個步驟的詳細介紹

開發 后端
本文會涉及到Python程序執行的5個相關步驟簡介,以及Python程序執行第一個步驟的具體介紹。以下是文章的相關內容的介紹。

我們大家都知道的是Python程序執行可分為5個步驟,那么本文將介紹Python程序執行的第一個步驟,也就是我們所說的詞法分析,如果你對Python程序執行的第一個步驟感興趣的話,你就可以點擊以下的文章。

Python源碼分析3 – 詞法分析器PyTokenizer 收藏
Introduction
上次我們分析了Python程序執行可分為5個步驟:

Tokenizer進行詞法分析,把源程序分解為Token

Parser根據Token創建CST

CST被轉換為AST

AST被編譯為字節碼

執行字節碼

本文將介紹Python程序執行的第一步,也就是詞法分析。

詞法分析簡單來說就是把源程序的字符分解組合成Token。

比如sum=0可以分解成3個token,'sum', '=', '0'。程序中的whitespace通常只作為分隔符用,最終會被忽略掉,因此沒有出現在token的列表中。不過在Python之中,由于語法規則的關系,Tab/Space需要用來分析程序的縮進,因此Python中對于Whitespace的處理比一般C/C++編譯器的處理會要稍微復雜一些。

在Python中詞法分析的實現在Parser目錄下的tokenizer.h和tokenizer.cpp。Python的其他部分會直接調用tokenizer.h中定義的函數,如下:

 

  1. extern struct tok_state
     *PyTokenizer_FromString
    (const char *);   
  2. extern struct tok_state 
    *PyTokenizer_FromFile
    (FILE *, char *, char *);   
  3. extern void PyTokenizer_Free
    (struct tok_state *);   
  4. extern int PyTokenizer_Get
    (struct tok_state *, char **, char **); 

這些函數均以PyTokenizer開頭。這是Python源代碼中的一個約定。雖然Python是用C語言實現的,其實現方式借鑒了很多面對對象的思想。拿詞法分析來說,這四個函數均可以看作PyTokenizer的成員函數。

頭兩個函數PyTokenizer_FromXXXX可以看作是構造函數,返回PyTokenizer的instance。PyTokenizer對象內部狀態,也就是成員變量,儲存在tok_state之中。PyTokenizer_Free可以看作是析構函數,負責釋放PyTokenizer,也就是tok_state所占用的內存。

PyTokenizer_Get則是PyTokenizer的一個成員函數,負責取得在字符流中下一個Token。這兩個函數均需要傳入tok_state的指針,和C++中需要隱含傳入this指針給成員函數的道理是一致的。可以看到,OO的思想其實是和語言無關的,即使是C這樣的結構化的語言,也可以寫出面對對象的程序。

 

以上就是Python程序執行的第一步,也就是詞法分析相關的內容的介紹,忘你會有所收獲。

【編輯推薦】

  1. mod_python在性能上要優于傳統CGI的緣由
  2. Python中文轉換url編碼的實際操作步驟介紹
  3. Python學習入門中的先搭環境的具體應用的方法介紹
  4. Python源碼分析的實際相關操作步驟解析
  5. Python安裝的步驟操作其實是件很容易的事
責任編輯:佚名 來源: 互聯網
相關推薦

2013-10-30 22:10:28

Clouda程序

2010-03-25 13:05:00

Python執行代碼

2024-06-07 08:59:35

2010-03-25 16:51:12

Python程序

2024-03-13 13:53:10

C++程序開發

2012-05-25 15:20:38

XNA

2023-05-19 08:49:58

SQLAlchemy數據庫

2009-06-26 16:07:43

MyEclipse開發Hibernate程序

2023-06-01 08:24:08

OpenAIChatGPTPython

2019-12-31 08:00:00

DebianLinuxApple Swift

2022-10-17 10:28:05

Web 組件代碼

2020-11-13 07:08:51

Spring Boot應用Spring

2010-03-15 10:37:46

Pthon腳本

2021-11-02 08:00:00

機器學習API技術

2025-05-28 09:04:00

谷歌AI搜索

2022-11-01 07:23:55

Dockernetcore程序

2011-06-08 10:01:36

Windows Pho 應用程序

2011-06-08 10:24:38

Windows Pho 應用程序

2011-06-24 13:38:32

QT 編譯 安裝

2012-12-21 15:29:07

Android
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线激情视频 | 欧一区二区 | 久久综合久色欧美综合狠狠 | 蜜臀网站 | 欧美一区视频 | 日日夜夜天天 | 91av在线视频观看 | 日韩 国产 在线 | 在线播放国产视频 | 中文字幕91av | 夜夜干夜夜操 | 色伊人久久 | 一区二区三区视频在线 | 日韩成人精品一区二区三区 | 午夜精品久久久久久久久久久久久 | 日韩久久精品视频 | 婷婷精品 | 国产免费av在线 | 精品国产99| 久久精品一区二区三区四区 | 久久久精品综合 | 一区二区三区四区在线视频 | 国产精品高潮呻吟久久久久 | 91视频a | 国产成人精品区一区二区不卡 | 久操av在线 | 亚洲精品久久久9婷婷中文字幕 | 黄色毛片免费看 | 国产亚洲高清视频 | 一区二区在线不卡 | 男女午夜免费视频 | 日韩欧美专区 | 亚洲成人精品一区 | 成人一区二区三区 | 小h片免费观看久久久久 | 黄色一级网 | 亚洲精品一二三 | 国产我和子的乱视频网站 | 国产精品免费一区二区三区 | 国产黄色大片 | 久久se精品一区精品二区 |