python是一門解釋性語言
什么是解釋性語言?學過C語言的同學都知道C語言是一門編譯性語言,那么這里我們就要清楚的了解 解釋性語言 與 編譯性語言 有什么區別。
編譯性語言:
只須編譯一次就可以把源代碼編譯成機器語言,后面的執行無須重新編譯,直接使用之前編譯的結果即可;因此其執行效率比較高。例如:C語言、C++等
解釋性語言:
源代碼不能直接被編譯為機器語言,而是先編譯成中間代碼,再由解釋器對中間代碼進行解釋運行;執行效率較慢。例如:python、JS等
這也就是為什么人們常說C語言底層語言(距離內核近),python是高級語言(距離內核遠)
python運行效率慢是python最大的缺點,當然目前在實際項目中會有很多優化的方案,可以提升python的效率。這個后期咱們再談。
python的運行過程
根據解釋性語言的性質,系統在讀取python代碼時,往往是如下步驟:
m.py(源代碼)——> m.pyc(字節碼)——> PVM(虛擬機運行)
當python運行時,會將源代碼翻譯為字節碼,之后將字節碼轉發至虛擬機中即可運行。
而其中的字節碼在內存中的PyCodeObject中,運行結束后,python將PyCodeObject寫入到.pyc文件中(python2中是.pyc,python3 是_pycache__的子目錄中),.pyc文件其實是PyCodeObject的一種持久化保存方式(通常與源代碼在統一目錄下).
.pyc文件會提高代碼的執行速度。
下一次運行源代碼時,系統會識別源代碼和.pyc文件的最后
修改時間是否相同
,相同即可直接運行字節碼;不相同則廢棄原字節碼,
重新由源代碼編譯為新的字節碼
。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
