Python 之 闭包 & 装饰器 + 实例详解
闭包:
- 函数的多层嵌套, 在函数内部再定义一个函数,并且这个函数用到了外部函数的变量,那么将内部的函数以及用到外部的一些变量看着一个特殊的对象, 称之为闭包
- 实例: ( 左: 面向对象 右: 闭包)
-
-
总结: 函数, 匿名函数, 闭包, 面向对象, 有什么区别 ?
- 1. 普通函数: 能完成 复杂的功能...传递的是这个函数的引用, 只有功能
- 2. 匿名函数: 能完成 简单的功能...传递的是这个函数的引用, 只有功能
- 3. 闭包: 能够完成 较为复杂的功能...比函数强大, 传递的是这个闭包中的 函数 以及 数据, 占用资源比较小
- 4. 面向对象: 能够完成 最为复杂的功能...比闭包强大, 传递的是 很多功能 + 数据, 占用大量空间, 浪费资源
-
总结: 函数, 匿名函数, 闭包, 面向对象, 有什么区别 ?
装饰器:
- 装饰器由来:
-
开放封闭原则:
- 简单来说,规定已经实现的功能代码不允许被修改,但可以被扩展
- 封闭: 已实现的功能代码块
- 开放: 可扩展开发
-
- 装饰器是由函数去生成的,用于装饰某个 函数 或者 方法 或者 类,利用闭包的原理, 对一个目标函数进行装饰, 让这个目标函数在执行之前 或者 执行之后做一些操作
- 通用的装饰器示例: ( 在闭包里添加return )