电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python常量折疊基礎知識點講解

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

所謂常量折疊,指的是在編譯時就查找并計算常量表達式,而不是在運行時再對其進行計算,從而會使運行時更加精簡和快速。

2、實例

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

當使用dis模塊反匯編上述常量表達式時,我們會得到以下字節碼:

>>> 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

從字節碼中可以看出,它只有一個LOAD_CONST ,以及一個已經計算好的值86400。

這表明 CPython 解釋器在解析和構建抽象語法樹期間,會折疊常量表達式 24 * 60 * 60,并將其替換為計算值 86400。

知識點擴展:

常量折疊的外部細節

當初,咱們將重點轉移到外部的實現細節,即關注 CPython 在哪里以及如何實現常量折疊。

所有的 AST 優化(包含常量折疊)都能夠在 ast_opt.c 文件中找到。根本的開始函數是 astfold_expr,它會折疊 Python 源碼中蘊含的所有表達式。

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

astfold_expr 在折疊某個表達式之前,會嘗試折疊其子表達式(操作對象),而后將折疊操作代理給特定的表達式折疊函數。

特定操作的折疊函數對表達式求值,并返回計算后的常數,而后將其放入 AST 中。

例如,每當 astfold_expr 遇到二值運算時,它便調用 fold_binop,遞歸地計算兩個子操作對象(表達式) 。

fold_binop 函數返回計算后的常量值,如上面的代碼片段所示:

fold_binop 函數通過查看以后運算符的品種,而后調用其相應的處理函數來折疊二值運算。例如,如果以后的操作是加法運算,為了計算最終值,它會對其左側和右側操作數調用 PyNumber_Add。

到此這篇關于python常量折疊基礎知識點講解的文章就介紹到這了,更多相關python常量折疊是什么內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 杜甫仪器官网|实验室平行反应器|升降水浴锅|台式低温循环泵 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | CE认证_产品欧盟ROHS-REACH检测机构-商通检测| 不锈钢水箱厂家,不锈钢保温水箱-山东桑特供水设备 | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 模温机-油温机-电加热导热油炉-工业冷水机「欧诺智能」 | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 新疆系统集成_新疆系统集成公司_系统集成项目-新疆利成科技 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 电动液压篮球架_圆管地埋式篮球架_移动平箱篮球架-强森体育 | IIS7站长之家-站长工具-爱网站请使用IIS7站长综合查询工具,中国站长【WWW.IIS7.COM】 | 锯边机,自动锯边机,双面涂胶机-建业顺达机械有限公司 | 篮球地板厂家_舞台木地板品牌_体育运动地板厂家_凯洁地板 | 铝单板_铝窗花_铝单板厂家_氟碳包柱铝单板批发价格-佛山科阳金属 | 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 手持式3d激光扫描仪-便携式三维立体扫描仪-北京福禄克斯 | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 压装机-卧式轴承轮轴数控伺服压装机厂家[铭泽机械] | 浇钢砖,流钢砖_厂家价低-淄博恒森耐火材料有限公司 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 定量包装秤,吨袋包装称,伸缩溜管,全自动包装秤,码垛机器人,无锡市邦尧机械工程有限公司 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | 环氧树脂地坪_防静电地坪漆_环氧地坪漆涂料厂家-地壹涂料地坪漆 环球电气之家-中国专业电气电子产品行业服务网站! | 食品级焦亚硫酸钠_工业级焦亚硫酸钠_焦亚硫酸钠-潍坊邦华化工有限公司 | 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 辐射仪|辐射检测仪|辐射巡测仪|个人剂量报警仪|表面污染检测仪|辐射报警仪|辐射防护网 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 收录网| 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) |