1、概念
裝飾器(decorator)就是:定義了一個(gè)函數(shù),想在運(yùn)行時(shí)動態(tài)增加功能,又不想改動函數(shù)本身的代碼??梢云鸬綇?fù)用代碼的功能,避免每個(gè)函數(shù)重復(fù)性編寫代碼,簡言之就是拓展原來函數(shù)功能的一種函數(shù)。在python中,裝飾器(decorator)分為 函數(shù)裝飾器 和 類裝飾器 兩種。python中內(nèi)置的@語言就是為了簡化裝飾器調(diào)用。
列出幾個(gè)裝飾器函數(shù):
打印日志:@log
檢測性能:@performance
數(shù)據(jù)庫事務(wù):@transaction
URL路由:@post('/register')
2、使用方法
(1)無參數(shù)decorator
編寫一個(gè)@performance,它可以打印出函數(shù)調(diào)用的時(shí)間。
import time def performance(f): def log_time(x): t1 = time.time() res = f(x) t2 = time.time() print 'call %s() in %fs' %(f.__name__,(t2 - t1)) return res return log_time @performance def factorial(n): return reduce(lambda x,y : x*y,range(1,n+1)) print factorial(10)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。