Python執(zhí)行代碼的實際操作的五個步驟詳細介紹
你對 Python執(zhí)行代碼的五步驟的具體應用都了解嗎?想詳細了解Python執(zhí)行代碼在實際運行中實際操作步驟嗎?如果你對其有想了了解的欲望的話,你就可以點擊我們的文章對其進行一個更好的了解。
Python執(zhí)行代碼要經過如下過程:
1. Tokenizer進行詞法分析,把源程序分解為Token
2. Parser根據Token創(chuàng)建CST
3. CST被轉換為AST
4. AST被編譯為字節(jié)碼
5. 執(zhí)行字節(jié)碼
當執(zhí)行Python代碼的時候,以代碼存放在文件中的情況為例,Python會調用PyParser_ASTFromFile函數將文件的代碼內容轉換為AST:
- mod_ty
- PyParser_ASTFromFile(FILE *fp, const char *filename,
int start, char *ps1,- char *ps2, PyCompilerFlags *flags, int *errcode,
- PyArena *arena)
- {
- mod_ty mod;
- perrdetail err;
- node *n = PyParser_ParseFileFlags(fp, filename,
&_PyParser_Grammar,- start, ps1, ps2, &err, PARSER_FLAGS(flags));
- if (n) {
- mod = PyAST_FromNode(n, flags, filename, arena);PyNode_Free(n);
- return mod;
- }
- else {
- err_input(&err);
- if (errcode)
- *errerrcode = err.error;
- return NULL;
- }
- }
在
- PyParser_ParseFileFlags
在Python執(zhí)行代碼中還要把文件轉換成CST之后,PyAST_FromNode函數會把CST轉換成AST。此函數定義在include\ast.h中:
- PyAPI_FUNC(mod_ty) PyAST_FromNode(const node *, PyCompilerFlags *flags,
- const char *, PyArena *);
以上就是對Python執(zhí)行代碼要經過相關的內容的介紹,忘你會有所收獲。
【編輯推薦】
- Python學習入門中的先搭環(huán)境的具體應用的方法介紹
- Python源碼分析的實際相關操作步驟解析
- Python庫如何高效的完成工作的詳細介紹
- Python編程語言的功能優(yōu)點的具體體現(xiàn)
- Python編程語言在Zope軟件開發(fā)中具體應用