您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)python中的裝飾器是什么的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
裝飾器(Decorators)
裝飾器為我們提供了一個(gè)增加已有函數(shù)或類的功能的有效方法。聽(tīng)起來(lái)是不是很像Java中的面向切面編程(Aspect-Oriented Programming)概念??jī)烧叨己芎?jiǎn)單,并且裝飾器有著更為強(qiáng)大的功能。舉個(gè)例子,假定你希望在一個(gè)函數(shù)的入口和退出點(diǎn)做一些特別的操作(比如一些安全、追蹤以及鎖定等操作)就可以使用裝飾器。
裝飾器是一個(gè)包裝了另一個(gè)函數(shù)的特殊函數(shù):主函數(shù)被調(diào)用,并且其返回值將會(huì)被傳給裝飾器,接下來(lái)裝飾器將返回一個(gè)包裝了主函數(shù)的替代函數(shù),程序的其他部分看到的將是這個(gè)包裝函數(shù)。
import timefrom functools import wrapsdef timethis(func): ''' Decorator that reports the execution time. ''' @wraps(func) def wrapper(*args, **kwargs): start = time.time() result = func(*args, **kwargs) end = time.time() print(func.__name__, end-start) return result return wrapper@timethisdef countdown(n): while n > 0: n -= 1countdown(100000)# ('countdown', 0.006999969482421875)
感謝各位的閱讀!關(guān)于“python中的裝飾器是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。