装饰器:本质就是函数。是为其他函数添加附加功能的。

原则:
1.不修改被修饰函数的源代码
2.不修改被修饰函数的调用方式

--- 装饰器的知识储备

装饰器=高阶函数+函数嵌套+闭包

高阶函数

1.高阶函数的定义

····函数接收的参数是一个函数名

····函数的返回值是一个函数名

····满足上述条件任意一个,都可称之为高阶函数

·········

def foo():
print('hello world')
def test(func):
print(func)
func()
test(foo)

运行结果:

<function foo at 0x0000024E9658C2F0>
hello world Process finished with exit code 0

···········

def foo():

    print('hello world')
def test(func):
return func foo =test(foo)
foo()

运行结果:

hello world

Process finished with exit code 0

最新文章

  1. nginx ssi 模块
  2. .NET MEF入门级例子
  3. Unity3D Player角色移动控制脚本
  4. DOM--4 响应用户操作和事件(1)
  5. DBLINK 创建的注意事项
  6. 纯CSS3画出小黄人并实现动画效果
  7. 设置IIS会话过期时间
  8. Maven实战(一)安装与配置
  9. Segment Tree 分类: ACM TYPE 2014-08-29 13:04 97人阅读 评论(0) 收藏
  10. HDU 2512 一卡通大冒险
  11. django 中的延迟加载技术,python中的lazy技术
  12. HDU 1953
  13. Drawable与Bitmap 自定义
  14. NULL和nullptr的区别
  15. vim 多文件编辑【超实用】
  16. (转)深度学习word2vec笔记之基础篇
  17. Asp.Net Core Options模式的知识总结
  18. 轴对称 Navier-Stokes 方程组的一个点态正则性准则
  19. Win10 自定义右键新建菜单
  20. ucos中的中断管理

热门文章

  1. 狼人杀面杀APP(FGUI教程)
  2. SSM项目启动报错WEB-INF\lib\javax.servlet-api-4.0.1.jar) - jar not loaded. See Servlet Spec 3.0, section 10
  3. 刷新指定窗口页面的gridTable数据
  4. 003 spring boot访问静态资源与重定向
  5. FrameLayout--霓虹灯
  6. ISO/IEC 9899:2011 条款6.5.5——乘法操作符
  7. 011-JSON、JSONObject、JSONArray使用、JSON数组形式字符串转换为List&lt;Map&lt;String,String&gt;&gt;的8种方法
  8. 零基础学Python-第一章 :Python介绍和安装-02.Python的发展历史与版本
  9. gitlab 配置到jenkins
  10. Docker容器(四)——常用命令