色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python常量折疊基礎(chǔ)知識(shí)點(diǎn)講解

瀏覽:40日期:2022-06-26 18:25:33
1、概念

所謂常量折疊,指的是在編譯時(shí)就查找并計(jì)算常量表達(dá)式,而不是在運(yùn)行時(shí)再對(duì)其進(jìn)行計(jì)算,從而會(huì)使運(yùn)行時(shí)更加精簡(jiǎn)和快速。

2、實(shí)例

在 Python 中,我們可以使用反匯編模塊(Disassembler)獲取 CPython 字節(jié)碼,從而更好地了解代碼執(zhí)行的過(guò)程。

當(dāng)使用dis模塊反匯編上述常量表達(dá)式時(shí),我們會(huì)得到以下字節(jié)碼:

>>> import dis>>> dis.dis('day_sec = 24 * 60 * 60') 0 LOAD_CONST0 (86400) 2 STORE_NAME0 (day_sec) 4 LOAD_CONST1 (None) 6 RETURN_VALUE

從字節(jié)碼中可以看出,它只有一個(gè)LOAD_CONST ,以及一個(gè)已經(jīng)計(jì)算好的值86400。

這表明 CPython 解釋器在解析和構(gòu)建抽象語(yǔ)法樹(shù)期間,會(huì)折疊常量表達(dá)式 24 * 60 * 60,并將其替換為計(jì)算值 86400。

知識(shí)點(diǎn)擴(kuò)展:

常量折疊的外部細(xì)節(jié)

當(dāng)初,咱們將重點(diǎn)轉(zhuǎn)移到外部的實(shí)現(xiàn)細(xì)節(jié),即關(guān)注 CPython 在哪里以及如何實(shí)現(xiàn)常量折疊。

所有的 AST 優(yōu)化(包含常量折疊)都能夠在 ast_opt.c 文件中找到。根本的開(kāi)始函數(shù)是 astfold_expr,它會(huì)折疊 Python 源碼中蘊(yùn)含的所有表達(dá)式。

這個(gè)函數(shù)以遞歸形式遍歷 AST,并試著折疊每個(gè)常量表達(dá)式,如上面的代碼片段所示:

astfold_expr 在折疊某個(gè)表達(dá)式之前,會(huì)嘗試折疊其子表達(dá)式(操作對(duì)象),而后將折疊操作代理給特定的表達(dá)式折疊函數(shù)。

特定操作的折疊函數(shù)對(duì)表達(dá)式求值,并返回計(jì)算后的常數(shù),而后將其放入 AST 中。

例如,每當(dāng) astfold_expr 遇到二值運(yùn)算時(shí),它便調(diào)用 fold_binop,遞歸地計(jì)算兩個(gè)子操作對(duì)象(表達(dá)式) 。

fold_binop 函數(shù)返回計(jì)算后的常量值,如上面的代碼片段所示:

fold_binop 函數(shù)通過(guò)查看以后運(yùn)算符的品種,而后調(diào)用其相應(yīng)的處理函數(shù)來(lái)折疊二值運(yùn)算。例如,如果以后的操作是加法運(yùn)算,為了計(jì)算最終值,它會(huì)對(duì)其左側(cè)和右側(cè)操作數(shù)調(diào)用 PyNumber_Add。

到此這篇關(guān)于python常量折疊基礎(chǔ)知識(shí)點(diǎn)講解的文章就介紹到這了,更多相關(guān)python常量折疊是什么內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 成人精品免费网站 | 亚洲天堂日韩在线 | 亚洲人成毛片线播放 | 久久久精品国产免费观看同学 | 久久国产视频网站 | 国产乱码精品一区二区三上 | 美国欧美一级毛片 | 中国嫩模一级毛片 | 看一级特黄a大片日本片 | 天堂8中文在线最新版在线 天堂8资源8在线 | 成人免费高清视频 | 成人在线91 | 日韩亚洲欧美一区噜噜噜 | 肥婆毛片 | 欧美一级特黄aa大片视频 | 久久99毛片免费观看不卡 | 精品国产免费久久久久久 | 欧美日韩综合高清一区二区 | 国产成人a在一区线观看高清 | 国产片在线观看狂喷潮bt天堂 | 日韩专区亚洲精品欧美专区 | 欧美另类高清xxxxx | 亚洲毛片在线看 | 美女张开腿让我 | 日本免费一级视频 | 一级做a爱过程免费视频麻豆 | 国产成人精品视频午夜 | 久久久小视频 | 99久久国产综合精品网成人影院 | 欧美一级精品高清在线观看 | 欧美成人午夜毛片免费影院 | 国产精品欧美一区二区三区不卡 | 美女张开大腿让男人桶 | 亚洲国产成人久久三区 | 国内精品久久久久影院网站 | 免费黄色一级网站 | 小草青青神马影院 | 日韩国产免费一区二区三区 | 国产成人精品综合久久久软件 | 亚洲美女视频一区二区三区 | 亚洲成人一区在线 |