1.装饰器的本质--一个闭包函数
2.装饰器的功能--在不改变原函数及其调用方式情况下对原函数功能进行拓展
3.带参数和返回值的装饰器
def timer(func):
@wraps(func) #使这些函数生效 __doc__ 查看函数注释信息 __name__ 查看函数名
def inner(*args,**kwargs):
start = time.time()
re = func(*args,**kwargs)
print(time.time() - start)
return re
return inner 4.装饰器函数有形参
def outer(flag):
def timer(func):
def inner(*args,**kwargs):
if flag:
print('''执行函数之前要做的''')
re = func(*args,**kwargs)
if flag:
print('''执行函数之后要做的''')
return re
return inner
return timer 5.多个装饰器装饰同一个函数
执行顺序:1.执行第1个装饰器函数前的部分 2.执行第2个装饰器函数前部分
3.执行第2个装饰器函数后的部分 4.执行第1个装饰器函数后的部分

  

最新文章

  1. 【JavaScript】变量定义提升、this指针指向、运算符优先级、原型、继承、全局变量污染、对象属性及原型属性优先级
  2. Day03_JAVA语言基础第三天
  3. Android中style的使用
  4. Android 高仿微信 获取最近刚刚拍照的缩略图 功能实现
  5. 查杀oracle锁表
  6. iOS开发——UI篇OC篇&TextField作为搜索框的使用
  7. Caesar
  8. mongodb高可用集群搭建
  9. sd卡文件操作
  10. android 去掉listview之间的黑线
  11. TCP/UDP客户端
  12. windows计划任务
  13. Docker Compose 之进阶篇
  14. PHP为什么有人学不会
  15. 【机器学习基本理论】详解最大后验概率估计(MAP)的理解
  16. FICO基础知识(二)
  17. ACM数论之旅12---康托展开((*゚▽゚*)装甲展开,主推进器启动,倒计时3,2,1......)
  18. Java导出List集合到txt文件中——(四)
  19. windows下sublime通过sftp扩展上传文件到linux服务器上
  20. 记录Appium-desktop踩过的坑could not find devices

热门文章

  1. PON/产线测试解决方案
  2. BGP4协议测试——信而泰网络测试仪实操
  3. VUE学习笔记(李天禹老师版本)
  4. 【windwos 操作系统】关键的Windows内核数据结构一览(上)
  5. oj教程--向量容器
  6. 基于Lumisoft.NET组件,使用IMAP协议收取邮件
  7. go泛型教程
  8. VirtualBox虚拟机-安装增强功能
  9. tp5.0使用JWT完成token认证技术
  10. Navicat连接不上MySQL 8.0