import requests
import time
url = 'http://www.baidu.com'
# 不含參數(shù)的裝飾器,兩個(gè)套
def alltime(func):
def wrapper(*args,**kwargs):
start = time.time()
content = func(*args,**kwargs)
print(time.time() - start)
return content
return wrapper
@alltime
def request():
content = requests.get(url)
return content
# 含參數(shù)的裝飾器,三個(gè)套
def out(canshu):
def cehi(func):
def wrapper(*args,**kwargs):
# 可以理解為閉包中的global,在內(nèi)部函數(shù)中修改外部函數(shù)的值
nonlocal canshu
while int(canshu) < 100:
start= time.time()
time.sleep(2)
content = func(*args,**kwargs)
print('本次用時(shí)%s' % (time.time()-start))
canshu = int(canshu) + 1
# 被裝飾的函數(shù)有返回值的情況下需要返回
return content
return wrapper
return cehi
@out(canshu=30)
def xx():
print(123)
xx()
pyspider中every,config裝飾器的實(shí)現(xiàn)原理
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 學(xué)生問(wèn)羅輯思維的CEO脫不花:你們公司發(fā)展看上去順風(fēng)順?biāo)悄銈冇龅竭^(guò)什么挫折了嗎? 脫不花說(shuō),學(xué)生在學(xué)校里考試...
- 將近十二個(gè)小時(shí)的車程,臨近傍晚,列車終于到站了,這個(gè)曾經(jīng)內(nèi)心所向往的城市,雖然時(shí)隔幾年,如今也算是實(shí)現(xiàn)了自己的一個(gè)...
- 1、感賞今天又收到好多紅包,紅包可真愛(ài)我呀。是誰(shuí)又收到紅包啦?是誰(shuí)這么棒?當(dāng)然是歡寶寶啦。歡寶寶越來(lái)越招人...