1.装饰器
什么是装饰器:装饰器指的是为被装饰对象添加新功能的工具

装饰器本身可以是任意调用对象

被装饰对象本身也可以是任意可调用对象

2.为何要用装饰器:
开放封闭原则:
①对修改源代码和调用方式是封闭的

②对扩展功能是开放的

装饰器实现原则:
在不修改源代码和调用方式的前提下,给对象新增功能

装饰器的目的:
就是在遵循原则1和2的前提下为被装饰对象添加新功能

语法糖:
@outter#foo = outter(foo)
def foo():
​ print("foo")

通用装饰器
def outter(func):
def inner(*args,**kwargs):
res = func(*args,**kwargs)
return res
return inner

最新文章

  1. js实现前端分页页码管理
  2. 解决jQuery UI 对话框兼容性问题
  3. AngularJS开发指南9:AngularJS作用域的详解
  4. Javascript 笔记与总结(2-7)对象
  5. wampserver环境下,安装ucenter1.6.0
  6. 20160729noip模拟赛zld
  7. 例解 autoconf 和 automake 生成 Makefile 文件
  8. js面向对象+一般方法的选项卡
  9. 关于集合set ---STL
  10. 从项目经理的角度看.net的MVC中Razor语法真的很垃圾.
  11. Hibernate学习笔记一 使用idea开发工具搭建框架
  12. CentOS7系统上的GPSTK示例代码调试 & 运行结果 & 心得
  13. Linux学习笔记:Jenkins的使用(二)
  14. rest-framework之权限组件
  15. sqlserver每行都有累加,你怎么搞,窗口函数来帮忙!!!
  16. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-12底层驱动之液晶画点驱动
  17. SQL 基础学习(2) Joining 和function , 作业没有做,需要看百宝箱。NOsql的概念
  18. TypeError: HashUpdate fail
  19. mahout版本兼容问题
  20. java:模拟队列操作

热门文章

  1. C# 特性之事件
  2. p标签中的文本换行
  3. 如何实现序列化为json
  4. 牛客网Java刷题知识点之线程的几种可用状态(新建、可运行、运行、阻塞、死亡)
  5. Python临时笔记
  6. SourceGrid之Grid绑定数据
  7. 【转】微信小程序原理
  8. 初探ant design pro
  9. uvm_factory——我们的工厂(一)
  10. iOS Category实现原理