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 wrapper2.裝飾器示例
代碼如下(示例):
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 wrapper3.裝飾器調(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 PCA降維的兩種實(shí)現(xiàn)方法
大家好,本篇文章主要講的是Python PCA降維的兩種實(shí)現(xiàn)方法,感興趣的的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01
Python延時(shí)變量和free_list鏈表的區(qū)別詳解
延時(shí)變量指Python閉包中變量在調(diào)用時(shí)而非定義時(shí)綁定值,可通過默認(rèn)參數(shù)強(qiáng)制提前綁定,這篇文章主要介紹了Python延時(shí)變量和free_list鏈表區(qū)別的相關(guān)資料,需要的朋友可以參考下2026-01-01
Python使用Selenium爬取淘寶異步加載的數(shù)據(jù)方法
今天小編就為大家分享一篇Python使用Selenium爬取淘寶異步加載的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python docx的超鏈接網(wǎng)址和鏈接文本操作
這篇文章主要介紹了python docx的超鏈接網(wǎng)址和鏈接文本操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
python實(shí)現(xiàn)的生成隨機(jī)迷宮算法核心代碼分享(含游戲完整代碼)
這篇文章主要介紹了python實(shí)現(xiàn)的隨機(jī)迷宮生成算法核心代碼分享,本文包含一個(gè)簡(jiǎn)單迷宮游戲完整代碼,需要的朋友可以參考下2014-07-07
tensorflow 獲取checkpoint中的變量列表實(shí)例
今天小編就為大家分享一篇tensorflow 獲取checkpoint中的變量列表實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02

