首頁技術(shù)文章正文

Python裝飾器的理解

更新時(shí)間:2018-08-17 來源:黑馬程序員技術(shù)社區(qū) 瀏覽量:

  python裝飾器就是用于拓展原來函數(shù)功能的一種函數(shù),這個(gè)函數(shù)的特殊之處在于它的返回值也是一個(gè)函數(shù),使用python裝飾器的好處就是在不用更改原函數(shù)的代碼前提下給函數(shù)增加新的功能。一般而言,我們要想拓展原來函數(shù)代碼,最直接的辦法就是侵入代碼里面修改,但是有時(shí)候需要修改的代碼特別重要,不允許在里面修改,這時(shí)候就需要用到裝飾器了。

  這里的set_fun函數(shù)就是最原始的裝飾器,它的參數(shù)是一個(gè)函數(shù),然后返回值也是一個(gè)函數(shù)。其中作為參數(shù)的這個(gè)函數(shù)test()就在返回函數(shù)wrapper()的內(nèi)部執(zhí)行。然后在函數(shù)test()前面加上@set_fun,test()函數(shù)就相當(dāng)于被注入了新的功能,現(xiàn)在只要調(diào)用test(),它就已經(jīng)變身為“新的更多功能”的函數(shù)了。

1534498001841_1.jpg

  
多個(gè)裝飾器執(zhí)行的順序就是從最后一個(gè)裝飾器開始,執(zhí)行到第一個(gè)裝飾器,再執(zhí)行函數(shù)本身。

1534498034342_2.jpg  




作者:黑馬程序員人工智能+Python培訓(xùn)學(xué)院  
首發(fā):http://409rqu1.cn/special/pythonzly/index.shtml

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!