python中裝飾器的理解與使用詳解
一、裝飾器
裝飾器是給現(xiàn)有的模塊增添新的小功能,可以對(duì)原函數(shù)進(jìn)行功能擴(kuò)展,而且還不需要修改原函數(shù)的內(nèi)容,也不需要修改原函數(shù)的調(diào)用
裝飾器本質(zhì)上是一個(gè)閉包函數(shù),其作用在于可以為其他函數(shù)增加額外功能,裝飾器的返回值是一個(gè)函數(shù)對(duì)象
二、定義一個(gè)裝飾器
1.裝飾器格式
代碼如下(示例):
def 裝飾器名(func): def wrapper(*args, **kwargs): #額外功能的代碼 ... return func(*args, **kwargs) return wrapper
2.裝飾器示例
代碼如下(示例):
def logger(func): def wrapper(*args, **kwargs): """wrapper注釋""" start_time = time.time() res = func(*args, **kwargs) end_time = time.time() print("函數(shù)名:{}".format(func.__name__)) print("函數(shù)注釋內(nèi)容:{}".format(func.__doc__)) print("入?yún)?args :{}".format(args)) print("入?yún)?kwargs :{}".format(kwargs)) print("返回值:{}".format(res)) print("函數(shù)執(zhí)行耗時(shí):{:.6f}".format(start_time - end_time)) return res return wrapper
3.裝飾器調(diào)用
代碼如下(示例):
@logger def test_one(): "我是第一個(gè)裝飾器" print("我調(diào)用了裝飾器")
4.裝飾器運(yùn)行后輸出
三、 總結(jié)
1、裝飾器是一個(gè)閉包函數(shù),包括內(nèi)嵌函數(shù),返回值是一個(gè)函數(shù)對(duì)象
2、需要裝飾的函數(shù)前要加上調(diào)用格式:@裝飾器名
到此這篇關(guān)于python中裝飾器的理解與使用詳解的文章就介紹到這了,更多相關(guān)python中的裝飾器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例代碼
夏天是用來(lái)告別的季節(jié),因?yàn)楫厴I(yè)總在七月。那么七月之前的季節(jié)是用來(lái)干嘛的呢?當(dāng)然是用來(lái)做畢業(yè)設(shè)計(jì)的啦!本文為大家準(zhǔn)備了兩個(gè)版本的學(xué)生信息管理系統(tǒng),希望對(duì)大家有所幫助2023-02-02一文掌握6種Python中常用數(shù)據(jù)庫(kù)操作及代碼
在數(shù)據(jù)處理和管理領(lǐng)域,Python作為一種高效、易用的編程語(yǔ)言,擁有豐富的數(shù)據(jù)庫(kù)操作模塊,可以輕松實(shí)現(xiàn)對(duì)關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)操作,本文將介紹六種常見(jiàn)的Python數(shù)據(jù)庫(kù)操作模塊,需要的可以參考下2023-12-12基于Python實(shí)現(xiàn)語(yǔ)音識(shí)別功能
這篇文章給大家介紹了如何基于Python實(shí)現(xiàn)語(yǔ)音識(shí)別功能,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12Python3實(shí)現(xiàn)的簡(jiǎn)單工資管理系統(tǒng)示例
這篇文章主要介紹了Python3實(shí)現(xiàn)的簡(jiǎn)單工資管理系統(tǒng),涉及Python文件讀寫(xiě)、數(shù)據(jù)遍歷、判斷等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03Python使用latexify模塊實(shí)現(xiàn)將代碼為數(shù)學(xué)公式
latexify 是一個(gè)輕量級(jí)的 Python 模塊,可以將 Python 代碼轉(zhuǎn)換為 LaTeX 格式的數(shù)學(xué)表達(dá)式,這篇文章就來(lái)和大家探索一下如何使用latexify模塊實(shí)現(xiàn)將代碼為數(shù)學(xué)公式吧2023-12-12