摘要:背景今天在看一篇介紹生成器的文章的時(shí)候無心插柳了解到一個(gè)很有趣的標(biāo)準(zhǔn)庫,可以用于查看函數(shù)的匯編指令,從而理解代碼的執(zhí)行機(jī)制。相關(guān)技術(shù),模塊代碼感想標(biāo)準(zhǔn)庫博大精深啊。
背景
今天在看一篇介紹Python生成器的文章的時(shí)候無心插柳了解到一個(gè)很有趣的Python標(biāo)準(zhǔn)庫dis,可以用于查看函數(shù)的匯編指令,從而理解Python代碼的執(zhí)行機(jī)制。
相關(guān)技術(shù)Python3, dis模塊
代碼In [50]: dis(lambda x: x ** 2 if isinstance(x, int) else "Hello, {}".format(x) if isinstance(x, str) ...: else "Unknown type.") 1 0 LOAD_GLOBAL 0 (isinstance) 3 LOAD_FAST 0 (x) 6 LOAD_GLOBAL 1 (int) 9 CALL_FUNCTION 2 (2 positional, 0 keyword pair) 12 POP_JUMP_IF_FALSE 23 15 LOAD_FAST 0 (x) 18 LOAD_CONST 1 (2) 21 BINARY_POWER 22 RETURN_VALUE >> 23 LOAD_GLOBAL 0 (isinstance) 26 LOAD_FAST 0 (x) 29 LOAD_GLOBAL 2 (str) 32 CALL_FUNCTION 2 (2 positional, 0 keyword pair) 35 POP_JUMP_IF_FALSE 51 38 LOAD_CONST 2 ("Hello, {}") 41 LOAD_ATTR 3 (format) 44 LOAD_FAST 0 (x) 47 CALL_FUNCTION 1 (1 positional, 0 keyword pair) 50 RETURN_VALUE >> 51 LOAD_CONST 3 ("Unknown type.") 54 RETURN_VALUE感想
Python標(biāo)準(zhǔn)庫博大精深啊。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/38141.html
摘要:匯編器是怎么把對應(yīng)的匯編代碼,翻譯成為機(jī)器碼的??偨Y(jié)打孔卡,其實(shí)就是一種存儲(chǔ)程序型計(jì)算機(jī)。推薦閱讀了解的指令集參看計(jì)算機(jī)組成與設(shè)計(jì)軟硬件接口第版的小節(jié)參考深入淺出計(jì)算機(jī)組成原理 你在學(xué)寫程序的時(shí)候,有沒有想過,古老年代的計(jì)算機(jī)程序是怎么寫出來的?showImg(https://ask.qcloudimg.com/http-save/1752328/fpfs9776q8.png); 當(dāng)...
摘要:總結(jié)上面的過程中,我們已經(jīng)將源程序經(jīng)過預(yù)處理編譯匯編階段變成了二進(jìn)制代碼,這三個(gè)過程我們都是用兩種方法完成的,一種是參數(shù)的方法,另一種是使用系統(tǒng)默認(rèn)的預(yù)處理器,編譯器,匯編器。 目錄 1. 程序的翻譯環(huán)境和執(zhí)行環(huán)境 2. 詳解編譯+鏈接 2.1 翻譯環(huán)境 2.2 編譯本身也分為幾個(gè)階段: ?...
摘要:在中,源代碼首先將進(jìn)行詞法分析,將源代碼切割為多個(gè)字符串單元,分割后的字符串稱之為。圖以為例解釋型語言的執(zhí)行示意圖第步源碼通過詞法分析得到第步基于語法分析器生成抽象語法樹第步抽象語法樹轉(zhuǎn)換為指令集合,解釋執(zhí)行。 順風(fēng)車運(yùn)營研發(fā)團(tuán)隊(duì) 李志 發(fā)表在程序人生 公眾號我們常用的高級語言有很多種,比較出名的有CC++、Python、 PHP、Go、Pascal等。而這些語言根據(jù)運(yùn)行的方式不同,...
摘要:按恢復(fù)剛剛的撤銷。按將光標(biāo)所在位置開始往后的個(gè)字刪除,并進(jìn)入插入模式。跳至指定的行列出光標(biāo)所在行的行號。退出,如果無法離開,可在后面跟一個(gè)表示強(qiáng)制退出。和默認(rèn)生成的二進(jìn)制程序是動(dòng)態(tài)鏈接的,可以使用指令查看。 ...
摘要:程序預(yù)處理本章節(jié)研究的是,源代碼文件是如何一步步得到一個(gè)可執(zhí)行程序的。如的語句被稱為預(yù)處理指令,還有注釋文本的刪除,都在此階段完成替換。目的是能夠?qū)⑺形募械拇a組合到一起成一個(gè)完整的程序。終止程序可以正常也可以意外終止程序。 ...
閱讀 3651·2021-09-13 10:28
閱讀 1999·2021-08-10 09:43
閱讀 1061·2019-08-30 15:44
閱讀 3248·2019-08-30 13:14
閱讀 1937·2019-08-29 16:56
閱讀 2999·2019-08-29 16:35
閱讀 2906·2019-08-29 12:58
閱讀 922·2019-08-26 13:46