Python學(xué)習(xí)手冊——Python運行機制和運行情況

Python 運行機制

機器角度

當(dāng)Python"運行"時层扶,在代碼開始進行處理之前,Python會執(zhí)行一些步驟。

  • 第一步 編譯成字節(jié)碼
    程序執(zhí)行時场晶,Python會先將源代碼編譯成字節(jié)碼的形式拾并。字節(jié)碼是源代碼底層的揍堰、與平臺無關(guān)的表現(xiàn)形式Python通過把每一條源語句分解為單一步驟來將這些源語句翻譯成一組字節(jié)碼的執(zhí)行鹏浅。
    字節(jié)碼可以提高執(zhí)行速度,要比源代碼的運行速度快的多
  • Python會將字節(jié)碼生成一個以.pyc為擴展名的文件屏歹。字節(jié)碼可以讓使得程序啟動速度更加快速更加優(yōu)化隐砸,在下一次啟動后如果保存字節(jié)碼之后沒有修改過源代碼的話,Python將會加載.pyc文件并跳過編譯這個步驟蝙眶。如果Python無法在設(shè)備中寫入字節(jié)碼季希,程序依然可以工作,字節(jié)碼將會在內(nèi)存中生成并在程序結(jié)束時簡單的丟棄幽纷。

Python虛擬機 PVM

程序編譯成字節(jié)碼后式塌,.pyc文件載入后,字節(jié)碼文件通常發(fā)送到Python虛擬機上來執(zhí)行友浸。PVM不是一個獨立的程序峰尝,也不需要安裝。是Python的運行引擎收恢,在PVM運行字節(jié)碼文件后武学,Python解釋器的工作才算是結(jié)束。


python執(zhí)行過程.png

性能解釋

Python字節(jié)碼不是機器的二進制代碼伦意。字節(jié)碼是特定于Python的一種表現(xiàn)形式汽煮,而C C++這類編譯語言需要build或者make的步驟尿背,所以Python無法像C C++代碼執(zhí)行一樣快的原因

開發(fā)含義

Python執(zhí)行模塊的另一個情況是開發(fā)和執(zhí)行環(huán)境是同一個環(huán)境内颗。Python編譯期總是在運行時出現(xiàn)蛾娶,并且是運行程序系統(tǒng)的一部分。在程序開始執(zhí)行之前不需要預(yù)編譯和連接缆八。這樣使得Python具有更多的動態(tài)特性曲掰。所有的事情都是在程序運行時發(fā)生的。甚至還包括建立函數(shù)和類的操作以及連接的模塊奈辰。

Python實現(xiàn)的替代者

Python語言主要有三種實現(xiàn)方式:CPython.Jython和IronPython栏妖。其中CPython是標(biāo)準的實現(xiàn)。其他的都是有特點的目標(biāo)和角色的奖恰。

CPython

CPython是原始的吊趾、標(biāo)準的Python實現(xiàn)方式通常稱作CPython。現(xiàn)在大多數(shù)的分發(fā)的Python都是從CPython.

JPython

JPthon也叫做Jython是一種Python語言的替代實現(xiàn)方式瑟啃。目的是為了與Java編程語言集成论泛。Jython中包含了Java類,這些類編譯Python源代碼蛹屿、形成Java字節(jié)碼屁奏,并將得到的字節(jié)碼映射到Java虛擬機上。
Jython的目標(biāo)是讓Python代碼能夠腳本化Java應(yīng)用程序错负。實現(xiàn)與Java的無縫集成坟瓢。Python代碼被翻譯成Java字節(jié)碼勇边。在運行時看起來就像一個真正的Java程序一樣,可以應(yīng)用與開發(fā)web applet和servlet

IronPython

IronPython的第三種實現(xiàn)方式IronPython的設(shè)計目的是讓Python程序可以與windows平臺上的.Net框架以及與之對應(yīng)的Linux上的開源項目編寫成相應(yīng)的繼承

模塊導(dǎo)入和重載

每一個以擴展名.py結(jié)尾的Python源代碼文件都是一個模塊折联,其它的其文件可以通過導(dǎo)入一個模塊讀取這個模塊的內(nèi)容粒褒。導(dǎo)入從本質(zhì)上來講,就是載入另一個文件诚镰。并能夠讀取那個文件的內(nèi)容奕坟。一個模塊的內(nèi)容通過這樣的屬性能夠被外部使用。
導(dǎo)入模塊是一個開銷很大的操作怕享,以至于每個文件执赡、每個程序運行不能夠重復(fù)多于1次镰踏。如果想要Python在同同一次會話中再次運行文件函筋,需要調(diào)用imp標(biāo)準庫模塊中可用的reload函數(shù)(Python2.6內(nèi)置 但在Python3.0中不是內(nèi)置的)
導(dǎo)入者得到了模塊文件中在頂層所定義的所有變量名。這些變量名通常被賦值給通過模塊函數(shù)奠伪、類跌帐、變量以及其他被導(dǎo)出的工具。

模塊和命名空間

Python程序往往由多個模塊文件構(gòu)成绊率,通過import語句連接在一起谨敛,每個模塊文件是一個獨立完備的變量包,即一個命名空間滤否。一個模塊文件不能呢個看到其他文件定義的變量名脸狸,除非顯式的導(dǎo)入了那個文件,所以模塊文件在代碼中起到了最小化命名沖突的作用藐俺。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末炊甲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子欲芹,更是在濱河造成了極大的恐慌卿啡,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菱父,死亡現(xiàn)場離奇詭異颈娜,居然都是意外死亡,警方通過查閱死者的電腦和手機浙宜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門官辽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人粟瞬,你說我怎么就攤上這事同仆。” “怎么了亩钟?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵乓梨,是天一觀的道長鳖轰。 經(jīng)常有香客問我,道長扶镀,這世上最難降的妖魔是什么蕴侣? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮臭觉,結(jié)果婚禮上昆雀,老公的妹妹穿的比我還像新娘。我一直安慰自己蝠筑,他們只是感情好狞膘,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著什乙,像睡著了一般挽封。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上臣镣,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天辅愿,我揣著相機與錄音,去河邊找鬼忆某。 笑死点待,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的弃舒。 我是一名探鬼主播癞埠,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼聋呢!你這毒婦竟也來了苗踪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤坝冕,失蹤者是張志新(化名)和其女友劉穎徒探,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喂窟,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡测暗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了磨澡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碗啄。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖稳摄,靈堂內(nèi)的尸體忽然破棺而出稚字,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布胆描,位于F島的核電站瘫想,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏昌讲。R本人自食惡果不足惜国夜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望短绸。 院中可真熱鬧车吹,春花似錦、人聲如沸醋闭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽证逻。三九已至乐埠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瑟曲,已是汗流浹背饮戳。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洞拨,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓负拟,卻偏偏與公主長得像烦衣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子掩浙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容