import time print("-----------------以下是常规装饰器---------------") #常规装饰器 def getTimes(func): def getTime(): start_time=time.time() func() end_time=time.time() print("the time is %s"%(end_time-start_time)) return getTime @getTimes def test1(): time.sleep(3) print("in the test1") @getTimes def test2(): time.sleep(5) print("in the test2") test1() test2() print("-----------------以下是带参数的装饰器---------------") #带参数装饰器 def getTimes2(func): def getTime2(*args,**kwargs): start_time=time.time() func(*args,**kwargs) end_time=time.time() print("the time is %s"%(end_time-start_time)) return getTime2 @getTimes2 def test11(): time.sleep(1) print("in the test1") @getTimes2 def test22(name,age): time.sleep(5) print("in the test2",name,age) test11()test22('zhengliyuan',22)
运行结果如下:
-----------------以下是常规装饰器--------------- in the test1 the time is 3.00042724609375 in the test2 the time is 5.000293016433716 -----------------以下是带参数的装饰器--------------- in the test1 the time is 1.0005545616149902 in the test2 zhengliyuan 22 the time is 5.00066351890564
python常见的两种装饰器
最新推荐文章于 2024-06-10 15:30:00 发布