java python,python通過解釋器來編譯_python 解釋器與編譯過程,代碼的搬運工

 2023-10-15 阅读 24 评论 0

摘要:虛擬機工作前:python 在運行.py 文件的時候,先進行編譯字節碼的形式來進行存在,字節碼的存在是為了優化速度。字節碼的更改是通過時間戳來進行。字節碼發送的python 虛擬機之中,虛擬機是python解釋器的最后一部分什么是字節碼?字節碼就是

虛擬機工作前:

python 在運行.py 文件的時候,先進行編譯字節碼的形式來進行存在,字節碼的存在是為了優化速度。

字節碼的更改是通過時間戳來進行。字節碼發送的python 虛擬機之中,虛擬機是python解釋器的最后一部分

什么是字節碼?

字節碼就是為了提高速度,比如減少模塊加載的時間。

java python?虛擬機的具體工作:

虛擬機的工作就是翻譯的工作,字節碼就是為了優化速度!那字節碼是不是就是機能識別的代碼?答案是不是的,解釋器還是需要再次經過程序來翻譯的,這也是解釋語言的性能差的原因之一。

那我們學python有什么用?

python解釋器起到了中間"翻譯官"的功能,我們不需要了解機器底層是如何識別的,只需要關心如何讓解釋器來識別?是不是有點繞?簡而言之,我們可以隨意去寫我們的代碼,不需要關心底層就可以了。

那么解釋器如何理解我們的代碼呢?也就是類與對象呢?

實際上在python 之中類也是對象,甚至連函數都是對象!都是演繹好的,都他媽的是假的!!!!什么靜態方法,什么動態方法,都是python的語法糖,都是解釋器提前搭好的“臺子”。一種模擬面向對象(不過這點你不用擔心,我們還是可以使用,畢竟封裝多態繼承還是有的!!)

爬蟲python,實際上在python好了現在總結一下吧!!首先我們創建一個類,解釋器也就會創建一個對象(類對象)。按照類對象的功能取劃分命名空間!然后我們創建實例對象(實際上是類創建的)。最后運行我們的程序,編譯成字節碼,最后按照行來執行。

python 編譯過程!

1,python 在初始化環境的時候會預先加載一批內建模塊到內存,當我們導入模塊的時候解釋器會在其中搜索是否有模塊,如果存在就會導入到當前的命名空間,并且加載。

2,如果找不到就會為模塊創建一個字典對對象,將信息放置內存之中,加載前確認是否對文件編譯,如果需要那么就會先編譯。

3,執行動態加載,加載的是編譯后的字節碼。將所有的對象模塊放置相應的字典之中。

4,導入模塊時候放置命名空間的沖突。先編譯,會將自己文件的函數,或者變量覆蓋掉

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/137459.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息