1. 复习函数的知识,
1.1 函数名对应的内存地址
1.2函数名可以直接赋值给变量
1.3函数名可以做变量
1.4函数名可以做为函数的返回值
1.5函数名可以作为容器类函数的元素
2. 闭包
2.1 关于闭包的灵魂三问01
2,2闭包的灵魂三问02
2.3 闭包的灵魂三问03
2.4 闭包的定义
内层函数对于外层函数的非全局变量的引用,这样就形成的一个闭包,外层函数执行完成的时候,
内层的闭包函数不会消失,而是会继续在内存中存在,可以在继续的调用。
2.5 多层函数的嵌套
3 装饰器
3.1 女娲造人捏泥巴没有水怎么办?
3.3 装饰器语法糖
学习装饰器的同学们千万要注意,很多人学了一辈子都没有弄明白,一个函数前面加一个装饰器发生了什么?
把函数名当做装饰器函数的参数传进去执行装饰器函数,再将装饰器函数的inner返回值重新赋值给被装饰的函数,
对函数进行了装饰,这也是为什么叫装饰器的原因;
@wrapper
def func():
print('女娲造人')
4. 装饰器进阶
4.1 装饰带返回值的函数
4.2 装饰带参数的函数
4.3 带有参数的装饰器
4.4 多个装饰器装饰同一个函数
4.5装饰器修复技术
4.5.1未修复的情况
4.5.2装饰器修复之后
喜欢请用微信打赏
![](https://i-blog.csdnimg.cn/blog_migrate/f7a7a7325cd72fd9d67893de0283566c.png)
赏