Python3.5裝飾器典型案例分析
本文實例講述了Python3.5裝飾器。分享給大家供大家參考,具體如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
#高階函數(shù)+嵌套函數(shù)==>裝飾器
import time
def timer(func): #timer(test1)-->func=test1
def decor():
start_time = time.time()
func() #run test1
stop_time = time.time()
print("the run time of func is %s" %(stop_time-start_time))
return decor
@timer #test1 = timer(test1)
def test1():
time.sleep(3)
print("in the test1")
@timer #test2 = timer(test2)
def test2():
time.sleep(3)
print("in the test2")
print(timer(test1)) #打印deco的地址
#test1 = timer(test1)
#test2 = timer(test2)
test1() #-->執(zhí)行decor
test2()
運行結果:
<function timer.<locals>.decor at 0x00B720C0>
in the test1
the run time of func is 3.000171661376953
in the test2
the run time of func is 3.000171661376953
1、裝飾器修飾有參數(shù)函數(shù)
#高階函數(shù)+嵌套函數(shù)==>裝飾器
import time
def timer(func): #timer(test1)-->func=test1
def decor(arg1,arg2):
start_time = time.time()
func(arg1,arg2) #run test2
stop_time = time.time()
print("the run time of func is %s" %(stop_time-start_time))
return decor
@timer #test2 = timer(test2) = decor test2(name)==>decor(name)
def test2(name,age):
print("test2:",name,age)
test2("liu",23)
運行結果 :
test2: liu 23
the run time of func is 0.0
2、裝飾器修飾多個函數(shù),有的函數(shù)帶參數(shù),有的函數(shù)不帶參數(shù)的情況(采用參數(shù)組)
#高階函數(shù)+嵌套函數(shù)==>裝飾器
import time
def timer(func): #timer(test1)-->func=test1
def decor(*args,**kwargs):
start_time = time.time()
func(*args,**kwargs) #run test1
stop_time = time.time()
print("the run time of func is %s" %(stop_time-start_time))
return decor
@timer #test1 = timer(test1)
def test1():
time.sleep(3)
print("in the test1")
@timer #test2 = timer(test2) = decor test2(name)==>decor(name)
def test2(name,age):
time.sleep(1)
print("test2:",name,age)
#test1 = timer(test1)
#test2 = timer(test2)
test1() #-->執(zhí)行decor
test2("liu",23)
運行結果:
in the test1
the run time of func is 3.0036065578460693
test2: liu 23
the run time of func is 1.0084023475646973
更多關于Python相關內容可查看本站專題:《Python數(shù)據(jù)結構與算法教程》、《Python Socket編程技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python實現(xiàn)Mysql數(shù)據(jù)統(tǒng)計及numpy統(tǒng)計函數(shù)
這篇文章主要介紹了Python實現(xiàn)Mysql數(shù)據(jù)統(tǒng)計的實例代碼,給大家介紹了Python數(shù)據(jù)分析numpy統(tǒng)計函數(shù)的相關知識,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
解析Mac OS下部署Pyhton的Django框架項目的過程
這篇文章主要介紹了Mac OS下部署Pyhton的Django框架項目的過程,還附帶將了一個gunicorn結合Nginx來部署Django應用的方法,需要的朋友可以參考下2016-05-05
python3實現(xiàn)的zip格式壓縮文件夾操作示例
這篇文章主要介紹了python3實現(xiàn)的zip格式壓縮文件夾操作,結合實例形式分析了Python3基于zipfile模塊實現(xiàn)zip格式文件壓縮的相關操作技巧,需要的朋友可以參考下2019-08-08

