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