新聞中心
你對 Python執(zhí)行代碼的五步驟的具體應(yīng)用都了解嗎?想詳細了解Python執(zhí)行代碼在實際運行中實際操作步驟嗎?如果你對其有想了了解的欲望的話,你就可以點擊我們的文章對其進行一個更好的了解。

創(chuàng)新互聯(lián)建站長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為睢縣企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站制作,睢縣網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
Python執(zhí)行代碼要經(jīng)過如下過程:
1. Tokenizer進行詞法分析,把源程序分解為Token
2. Parser根據(jù)Token創(chuàng)建CST
3. CST被轉(zhuǎn)換為AST
4. AST被編譯為字節(jié)碼
5. 執(zhí)行字節(jié)碼
當執(zhí)行Python代碼的時候,以代碼存放在文件中的情況為例,Python會調(diào)用PyParser_ASTFromFile函數(shù)將文件的代碼內(nèi)容轉(zhuǎn)換為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í)行代碼中還要把文件轉(zhuǎn)換成CST之后,PyAST_FromNode函數(shù)會把CST轉(zhuǎn)換成AST。此函數(shù)定義在include\ast.h中:
- PyAPI_FUNC(mod_ty) PyAST_FromNode(const node *, PyCompilerFlags *flags,
- const char *, PyArena *);
以上就是對Python執(zhí)行代碼要經(jīng)過相關(guān)的內(nèi)容的介紹,忘你會有所收獲。
文章題目:Python執(zhí)行代碼的實際操作的五個步驟詳細介紹
分享URL:http://www.5511xx.com/article/coisgis.html


咨詢
建站咨詢
