成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

【Python】查看函數(shù)的匯編指令

chnmagnus / 3390人閱讀

摘要:背景今天在看一篇介紹生成器的文章的時(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

相關(guān)文章

  • 重學(xué)計(jì)算機(jī)組成原理(四)- 玩玩紙帶編程

    摘要:匯編器是怎么把對應(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)...

    lentrue 評論0 收藏0
  • 程序編譯和預(yù)處理

    摘要:總結(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è)階段: ?...

    CarlBenjamin 評論0 收藏0
  • 【PHP7源碼分析】PHP7語言執(zhí)行原理

    摘要:在中,源代碼首先將進(jìn)行詞法分析,將源代碼切割為多個(gè)字符串單元,分割后的字符串稱之為。圖以為例解釋型語言的執(zhí)行示意圖第步源碼通過詞法分析得到第步基于語法分析器生成抽象語法樹第步抽象語法樹轉(zhuǎn)換為指令集合,解釋執(zhí)行。 順風(fēng)車運(yùn)營研發(fā)團(tuán)隊(duì) 李志 發(fā)表在程序人生 公眾號我們常用的高級語言有很多種,比較出名的有CC++、Python、 PHP、Go、Pascal等。而這些語言根據(jù)運(yùn)行的方式不同,...

    VEIGHTZ 評論0 收藏0
  • Linux環(huán)境基礎(chǔ)開發(fā)工具使用

    摘要:按恢復(fù)剛剛的撤銷。按將光標(biāo)所在位置開始往后的個(gè)字刪除,并進(jìn)入插入模式。跳至指定的行列出光標(biāo)所在行的行號。退出,如果無法離開,可在后面跟一個(gè)表示強(qiáng)制退出。和默認(rèn)生成的二進(jìn)制程序是動(dòng)態(tài)鏈接的,可以使用指令查看。 ...

    yintaolaowanzi 評論0 收藏0
  • C語言進(jìn)階:程序預(yù)處理

    摘要:程序預(yù)處理本章節(jié)研究的是,源代碼文件是如何一步步得到一個(gè)可執(zhí)行程序的。如的語句被稱為預(yù)處理指令,還有注釋文本的刪除,都在此階段完成替換。目的是能夠?qū)⑺形募械拇a組合到一起成一個(gè)完整的程序。終止程序可以正常也可以意外終止程序。 ...

    gxyz 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<