python运行方式特点_编程必修课:一文弄懂python的运行机制
Python的維基百科說明:“是一種廣泛使用的解釋型,高級編程,通用型語言,具有動態類型和垃圾回收功能,能夠自動管理內存使用”
Python的設計哲學:優美優于丑陋,明了優于隱晦
簡單優于復雜,復雜優于凌亂
扁平優于嵌套,稀疏優于稠密
可讀性很重要
【1】背景知識
【1.1】編譯型VS解釋型
首先:Python是一門解釋型語言(雖然有編譯過程)
程序開發者編寫的代碼是高級語言,計算機是看不懂的,故需要一個“翻譯官”將我們寫的代碼轉換成計算機可以看明白的,這個“翻譯”的過程有2中——編譯和解釋
編譯型語言:先編譯,再運行,在程序運行之前,先通過編譯器將代碼轉化成機器碼,然后再交給計算機運行——典型代表C語言
解釋型語言: 邊解釋邊運行,程序直接開始運行,解釋器逐行給計算機進行解釋,接著直接運行
————————————————————————————————
【1.2】字節碼
字節碼并不是機器碼,而是可由解釋器執行的低級指令集合
————————————————————————————————
【2】Python運行機制
Python的運行其實也需要編譯這一步,編譯成字節碼,但大多數情況下Python是一門解釋型語言。
運行python程序(.py文件)時,我們會發現生成了一種.pyc文件,.pyc文件中存儲著python程序編譯后的字節碼
python運行機制: 首先將.py文件編譯成字節碼,存儲在.pyc文件中(該字節碼在虛擬機上運行非cpu)。當python程序第二次運行時,首先程序會在硬盤中尋找.pyc文件,如果找到直接運行,否則重復上述過程。
由于引入了字節碼,其加載速度比之前的.py文件有所提高,而且還可以實現源碼隱藏,一定程度上可以反編譯
————————————————————————————————
【3】解釋型語言優點
解釋型語言具有獨立于平臺的一大優勢:只要Python字節碼和虛擬機版本一致,就可以在任何平臺上運行
python是動態語言:在c++等靜態語言中,必須先聲明變量類型,并在編譯的時候檢查所有的差異,而Python作為弱類型語言,檢查變量類型和執行操作的有效性由解釋器完成,故Python不用先聲明變量
————————————————————————————————
【4】解釋型語言的缺點
動態類型提高了代碼的自由度,但同時也提高了代碼的風險,有時也難以調優
python經常被指責“速度慢”,因為每一次解釋字節碼需要許多額外工作
————————————————————————————————
【5】垃圾回收
內存空間有限,需要不斷的將這些垃圾回收,早期的編程語言,內存的分配主要依靠手動操作,現在都采用垃圾回收站代替人工進行。
垃圾回收: 不再使用的變量要從內存中移除或移動到別的地方
內存管理的方式:
簡化方式: 利用 “引用次數”,跟蹤變量的引用次數,當次數下降到0,則刪除對象(python中無法禁用此功能)
利用“生成垃圾回收”線程方法:當對象引用自己或者兩個對象相互引用時則無法使用“引用次數”
————————————————————————————————
【6】__pycache__文件夾
__pycache__文件夾下保存著 .pyc/.pyo 文件
————————————————————————————————Python從入門到精通?www.zhihu.com
總結
以上是生活随笔為你收集整理的python运行方式特点_编程必修课:一文弄懂python的运行机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: groovy怎样从sql语句中截取表名_
- 下一篇: git for windows_Git