装饰器的定义 带参数的装饰器 多个装饰器装饰同一个函数 装饰器修复技术

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装饰器修复之后

 

喜欢请用微信打赏

 


posted @ 2018-10-31 20:04  jack-chen666  阅读(221)  评论(0编辑  收藏  举报