计时装饰器python_使用python装饰器制作计时函数
本代碼作用,使用裝飾器做一個計時函數,使用此計時函數來裝飾其他的函數,計算其他函數的執行耗時
代碼如下:
import time
def jishi(fun1): #定義裝飾函數jishi,參數是fun1,fun1是可以callble函數
def fun2(*args,**kwargs): #定義內層函數fun2,參數為不定長參數
start=time.time() #設置起始時間start
fun1(*args,**kwargs) #調用fun1函數,參數為不定長參數
print("被裝飾函數執行完畢") #打印被裝飾函數執行完畢
end=time.time() #設置結束時間end
print("總耗時{}".format(end-start)) #打印總耗時多少秒
return fun2
@jishi #使用jishi裝飾下面的函數
def fun3(x,y): #定義被裝飾函數fun3
if x in range(1,13) and y in range(1,13):
if x+y==24:
print("{}+{}=24".format(x,y))
else:
print("{}+{}!=24".format(x,y))
else:
print("{}和{}的值輸入錯誤".format(x,y))
fun3(10,3) #調用fun3函數,實參為10,3
print("分隔符"+"*"*20)
@jishi #使用jishi裝飾下面的函數
def bianli(x): #定義被裝飾函數bianli,形式參數是x
list1=[] #頂一個空列表list1
for i in range(x): #遍歷數組x里的變量i
if i%3==0 and i%2==0: #假如i能整除2和3,
list1.append(i) #則將list1列表添加元素i
print("能整除2和3的列表list1為:",list1) #打印能整除2和3的列表list1的結果
bianli(100) #調用bianli函數,參數是100
代碼運行結果如下:
10+3!=24
被裝飾函數執行完畢
總耗時0.0
分隔符********************
能整除2和3的列表list1為: [0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96]
被裝飾函數執行完畢
總耗時0.0
圖片示例如下:
總結
以上是生活随笔為你收集整理的计时装饰器python_使用python装饰器制作计时函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习笔记:偏函数
- 下一篇: websocket python爬虫_p