国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

Python類的動態綁定實現原理

瀏覽:14日期: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 編程
相關文章:
主站蜘蛛池模板: 国内精品久久久久久中文字幕 | 97国产成人精品视频 | 91小视频在线观看免费版高清 | 久久福利青草精品资源站 | 日韩免费在线视频 | 国产精品久久久久久久午夜片 | 怡红院色视频在线 | 免费大片黄手机在线观看 | 欧美黄色特级视频 | 日本一区二区不卡久久入口 | 免费男女视频 | 波多野结衣在线免费观看视频 | 狠狠色综合色综合网站久久 | 中文字幕亚洲精品日韩精品 | 欧美激情精品久久久久久久九九九 | 成年女人毛片免费视频永久vip | 俄罗斯特级毛片 | 欧美成人在线视频 | 国产精品91在线播放 | 免费人成激情视频在线观看冫 | 手机在线日韩高清理论片 | 毛片在线不卡 | 日韩 欧美 中文 亚洲 高清 在线 | 成人免费高清视频网址 | 在线中文字日产幕 | 特黄特色三级在线观看 | 孕妇孕交视频 | 久久久精品免费热线观看 | 曰本黄页| 午夜影院黄 | 国产在线观看91精品一区 | 明星国产欧美日韩在线观看 | 亚洲国产成人九九综合 | 久草视频在线资源站 | 亚洲精品久久久久网站 | 91porny九色国产首页在线 | 99精品欧美 | 一级一级毛片看看 | 在线成人免费看大片 | 亚洲乱强 | 欧美一级毛片免费大全 |