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

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

Python類的動態綁定實現原理

瀏覽:6日期:2022-08-01 16:11:09

使用實例引用類的屬性時,會發生動態綁定。即python會在實例每次引用類屬性時,將對應的類屬性綁定到實例上。

動態綁定的例子:

class A: def test1(self): print('hello') def test2(self): print('world')def bound(): a = A() a.test1() A.test1 = A.test2 a.test1()if __name__ == '__main__': bound()

輸出結果:

hello2 world

從上述代碼中可以看到,類方法的變化是實時影響實例對方法的調用的,這說明python是在實例調用方法的過程中動態地查找類方法。

動態綁定的代價:

class A: def test(self): passdef one_loop(limited_time): a = A() for i in range(limited_time): a.test() f = a.test for i in range(limited_time): f()

上圖兩個循環中,一個調用a.test(),不斷進行動態綁定,另一個則先把a.test賦值給f,只有一次動態綁定,通過對兩個循環計時,測試動態綁定的代價。

輸出結果:

Python類的動態綁定實現原理

1 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0009999275207519531, 0.008995771408081055, 0.19991111755371094, 1.2715933322906494, 15.831915855407715]2 [0.0, 0.0, 0.0, 0.0, 0.0, 0.12503726671039295, 0.09472344399590288, 0.1999776288967874, 0.131608969147562, 0.1553209370384522]

折線圖中橫坐標為log10(循環次數),縱坐標為秒數。

輸出數據中,第一行為動態綁定和一次綁定耗費時間的差值,第二行為差值占動態綁定總時間的比例。

可以看出,在次數很小的時候,兩者基本沒有差距,或者說差距忽略不計。

在10^7次循環,即千萬次循環的時候,動態綁定與靜態綁定的耗費時間才出現了明顯差異,當循環次數達到十億級的時候,耗費時間相差15秒之多,約占總時間的15%。

由上可知,動態綁定效率低于靜態綁定,但由于綁定代價耗時很少,在次數很少的時候基本沒有影響。

動態綁定的優點:

class A: def test_hello(self): print('hello')def test_world(self): print('world')def main(): s = A() # 提前綁定 f = s.test_hello # 改變方法 A.test_hello = test_world f() # 動態綁定 s.test_hello()if __name__ == '__main__': main()

輸出結果:

hello2 world

類方法的變動能夠實時反應在動態綁定上,而提前綁定則無法感知到類方法的變動。

總結:

1. 一次動態綁定代價很小,當綁定次數少的時候基本不影響效率,當綁定次數達到千萬級時影響才會很顯著。

2. 動態綁定實時跟蹤類方法的變動,更具靈活性。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 智能楼宇-楼宇自控系统-楼宇智能化-楼宇自动化-三水智能化 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 低噪声电流前置放大器-SR570电流前置放大器-深圳市嘉士达精密仪器有限公司 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 上海心叶港澳台联考一对一培训_上海心叶港澳台联考,港澳台联考一对一升学指导 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 一体化净水器_一体化净水设备_一体化水处理设备-江苏旭浩鑫环保科技有限公司 | 缠膜机|缠绕包装机|无纺布包装机-济南达伦特机械设备有限公司 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 浩方智通 - 防关联浏览器 - 跨境电商浏览器 - 云雀浏览器 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 石栏杆_青石栏杆_汉白玉栏杆_花岗岩栏杆 - 【石雕之乡】点石石雕石材厂 | 番茄畅听邀请码怎么输入 - Dianw8.com | 2025第九届世界无人机大会| 天坛家具官网| 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 亚克隆,RNAi干扰检测,miRNA定量检测-上海基屹生物科技有限公司 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | EFM 022静电场测试仪-套帽式风量计-静电平板监测器-上海民仪电子有限公司 | 圆窗水平仪|伊莉莎冈特elesa+ganter | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 污水处理设备-海普欧环保集团有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 金属波纹补偿器厂家_不锈钢膨胀节价格_非金属伸缩节定制-庆达补偿器 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | MVR蒸发器厂家-多效蒸发器-工业废水蒸发器厂家-康景辉集团官网 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 |