久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

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

Python類的動態(tài)綁定實現(xiàn)原理

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

使用實例引用類的屬性時,會發(fā)生動態(tài)綁定。即python會在實例每次引用類屬性時,將對應(yīng)的類屬性綁定到實例上。

動態(tài)綁定的例子:

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

輸出結(jié)果:

hello2 world

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

動態(tài)綁定的代價:

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

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

輸出結(jié)果:

Python類的動態(tài)綁定實現(xiàn)原理

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]

折線圖中橫坐標(biāo)為log10(循環(huán)次數(shù)),縱坐標(biāo)為秒數(shù)。

輸出數(shù)據(jù)中,第一行為動態(tài)綁定和一次綁定耗費時間的差值,第二行為差值占動態(tài)綁定總時間的比例。

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

在10^7次循環(huán),即千萬次循環(huán)的時候,動態(tài)綁定與靜態(tài)綁定的耗費時間才出現(xiàn)了明顯差異,當(dāng)循環(huán)次數(shù)達到十億級的時候,耗費時間相差15秒之多,約占總時間的15%。

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

動態(tài)綁定的優(yōu)點:

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() # 動態(tài)綁定 s.test_hello()if __name__ == '__main__': main()

輸出結(jié)果:

hello2 world

類方法的變動能夠?qū)崟r反應(yīng)在動態(tài)綁定上,而提前綁定則無法感知到類方法的變動。

總結(jié):

1. 一次動態(tài)綁定代價很小,當(dāng)綁定次數(shù)少的時候基本不影響效率,當(dāng)綁定次數(shù)達到千萬級時影響才會很顯著。

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产综合视频在线播放 | 天天干天天操 | 免费特级黄毛片 | 欧美片网站免费 | 国产亚洲精品久久久 | 亚洲免费不卡视频 | 久久久久综合 | 亚洲精品一 | 日本不卡一区 | 在线观看欧美日韩 | 黄色a视频| 欧美日韩一区二区电影 | 久久伊人成人网 | 午夜影院在线观看 | 成人免费视屏 | 日韩在线观看中文字幕 | 久草网站 | 日韩欧美国产网站 | 欧美日韩精品综合 | 天天操天天舔天天爽 | 欧美日韩一区二区三区在线观看 | 亚洲精品久久久久久久久久久久久 | 亚洲综合在线一区 | 国产一区亚洲 | h视频免费看| 91秦先生艺校小琴 | 一道本视频 | 免费观看黄a一级视频 | 久久在线视频 | 山岸逢花在线观看 | 中文字幕99| 欧美极品一区二区 | 国户精品久久久久久久久久久不卡 | 国产欧美精品区一区二区三区 | 久久精品欧美 | 久草最新| 国产精品不卡一区 | 免费看a | 亚洲精品乱码久久久久久蜜桃图片 | 国产人成免费视频 | 久久噜噜噜精品国产亚洲综合 |