更新時間:2018-08-17 來源:黑馬程序員技術社區(qū) 瀏覽量:
python裝飾器就是用于拓展原來函數功能的一種函數,這個函數的特殊之處在于它的返回值也是一個函數,使用python裝飾器的好處就是在不用更改原函數的代碼前提下給函數增加新的功能。一般而言,我們要想拓展原來函數代碼,最直接的辦法就是侵入代碼里面修改,但是有時候需要修改的代碼特別重要,不允許在里面修改,這時候就需要用到裝飾器了。
這里的set_fun函數就是最原始的裝飾器,它的參數是一個函數,然后返回值也是一個函數。其中作為參數的這個函數test()就在返回函數wrapper()的內部執(zhí)行。然后在函數test()前面加上@set_fun,test()函數就相當于被注入了新的功能,現在只要調用test(),它就已經變身為“新的更多功能”的函數了。
多個裝飾器執(zhí)行的順序就是從最后一個裝飾器開始,執(zhí)行到第一個裝飾器,再執(zhí)行函數本身。
作者:黑馬程序員人工智能+Python培訓學院
首發(fā):http://m.pantone-color.com.cn/special/pythonzly/index.shtml