基本概念

装饰器:用来装饰其他函数的,即为其他函数添加特定功能的函数。

装饰器函数的基本原则:
1、 装饰器不能改变被装饰函数的源码。
2、 装饰器不能修改被装饰函数的调用方式。

高阶函数:接受函数名作为形参,返回值中包含函数名。

嵌套函数:通过def关键字定义在另一个函数中的函数叫嵌套函数。
{
def foo():
print("in foo")
def boo():
print("in boo")
}

装饰器编写基本套路:
1.定义一个接受函数名作为参数的高阶函数
2.在高阶函数中定义一个嵌套函数,在该嵌套函数中:{1.封装想要添加的功能代码
2.调用作为参数传入的函数名
3.返回嵌套函数的函数名}

常见的几种装饰器类型:
1.被装饰函数带参数
2.装饰器本身带参数
3.被装饰函数带返回值

闭包的作用:
可以用来在一个函数与一组变量之间创建关联关系,在给定函数被多次调用的过程中,这些私有变量能够保持其私有性(保持运行环境与变量的状态)。

闭包的特征:
1.必须要有函数的嵌套,而且外层函数必须返回内层函数,外层函数相当于给内层函数提供了一个包装起来的运行环境,在这个包装的运行环境里面,内层函数可完全自己掌握自由变量的值。
2.内层函数一定要用到外层函数中定义的自由变量。

装饰器与闭包的不同点:
装饰器:
1.外层函数成为装饰器
2.装饰器的外层函数主要是提供被装饰函数的引用
3.装饰器的外层函数不一定要提供变量
4.装饰器的目的:为被装饰函数提供额外的功能
5.从形式上看,闭包是装饰器的子集

闭包:
1.外层函数称为闭包
2.闭包的外层函数主要是为了提供自由变量
3.闭包的外层函数必须提供自由变量,否则闭包无意义
4.闭包的目的是保存函数运行环境和局部变量值

高阶函数和嵌套函数

高阶函数:

嵌套函数

被装饰函数带参数

装饰器本身带参数

被装饰函数带返回值

闭包

不同的人,不同的道,入目不同的景
最后更新于 2025-02-22