Python底層源碼分析(一): Python啟動(dòng)都干了什么?
2023-02-17 22:07 作者:StepfenShawn | 我要投稿
我們從main函數(shù)開始分析:
之后是一些初始化操作, 函數(shù)執(zhí)行流:
PyMain -> pymain_main -> Py_RunMain:
Py_RunMain這個(gè)函數(shù)定義了整個(gè)Python程序運(yùn)行的生命周期, 我們進(jìn)入最主要的函數(shù)pymain_run_python看看:
我們先來看看 pymain_repl 執(zhí)行了什么:
PyRun_AnyFileFlags:
接下來到了解析Python源代碼的函數(shù)了:
接下來又是一堆函數(shù)執(zhí)行流:
_PyRun_AnyFileObject ->?_PyRun_SimpleFileObject :
接下來是pyrun_file, 也就是詞法分析, 語法分析, 翻譯成 python vm code 部分了:
看來Python在啟動(dòng)前做了很多事情啊,?初始化線程, 獲取config, check模式等等。。。我們先把主要的架構(gòu)看清楚, 后面再對(duì)各個(gè)函數(shù)的細(xì)節(jié)慢慢分析吧。。。
標(biāo)簽: