Python_装饰器进阶_32
2024-10-19 08:45:05
#带参数的装饰器
#500个函数
import time
FLAGE = True
def timmer_out(flag):
def timmer(func):
def inner(*args,**kwargs):
if flag:
start = time.time()
ret = func(*args,**kwargs)
end = time.time()
print(end-start)
return ret
else:
ret = func(*args, **kwargs)
return ret
return inner
return timmer
# timmer = timmer_out(FLAGE) #timmer = timmer_out(FLAGE)
#wahaha = timmer(wahaha) #@timmer
@timmer_out(FLAGE)
def wahaha():
time.sleep(0.1)
print('wahahahahahaha') @timmer_out(FLAGE)
def erguotou():
time.sleep(0.1)
print('erguotoutoutou') wahaha()
erguotou()
#多个装饰器装饰一个函数
def wrapper1(func):
def inner1():
print('wrapper1 ,before func')
ret = func()
print('wrapper1 ,after func')
return ret
return inner1 def wrapper2(func):
def inner2():
print('wrapper2 ,before func')
ret = func()
print('wrapper2 ,after func')
return ret
return inner2 def wrapper3(func):
def inner3():
print('wrapper3 ,before func')
ret = func()
print('wrapper3 ,after func')
return ret
return inner3 @wrapper3
@wrapper2
@wrapper1
def f():
print('in f')
return '哈哈哈' print(f()) #记录用户的登录情况
#计算这个函数的执行时间
最新文章
- Redis系列(六)-SortedSets设计技巧
- JQuery中each()的使用方法说明
- 【目录】python
- VIM 中鼠标选择不选中行号
- ALV详解:Function ALV(一)
- c++时间处理
- Ehcache和MemCached比较分析
- 获取select值
- Oracle Goldengate工作原理
- C++Primer第5版学习笔记(二)
- javascript高级知识点——memoization
- 流式大数据计算实践(3)----高可用的Hadoop集群
- 三机互ping(自己总结)
- druid 连接Oracle时出现的错误
- Mac下Qt的环境搭建
- Zabbix-Agent在主动模式启动服务后,提示no active checks on server [139.219.xx.xx:10051]: host [139.219.xx.xx] not found
- sicily 1154. Easy sort (tree sort&; merge sort)
- Python3 Tkinter-Menu
- HUST 1354 - Rubiks (DP)
- Installing xgboost and cmake, mingw64 and mingw