Python基础温习-装饰器
装饰器
定义:一个用来“包装”另一个函数,在不修改原函数代码的情况下,给它增加新功能的函数。
先写一个普通函数:
1 | def login(): |
再写一个包装函数:
1 | def wrapper(func): |
调用:
1 | login = wrapper(login) |
输出:
1 | 开始执行 |
真正的装饰器语法:
python为了方便,不用写:
1 | login = wrapper(login) |
可以写:
1 |
|
python解释器看到:
1 |
自动帮你变成:
1 | def login(): |
本质:@只是语法糖,函数 = 装饰器(函数)
装饰器本质:是一个函数,它接收一个函数作为参数,返回一个新的函数,在不修改原函数代码的情况下,为原函数动态添加功能。
特点:
1、接收一个函数作为参数
2、返回一个新的函数(通常是闭包)
3、增强原函数,而不是修改原函数
闭包:
即使外部函数已经执行结束,内部函数仍然可以访问外部函数中的变量。
1 | def outer(): |
调用:
1 | f = outer() |
输出:
1 | 100 |
满足两个条件:
1、里面还有函数
1 | def outer(): |
2、内部函数引用了外部变量
1 | def outer(): |
只有同时满足才叫闭包
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Soul-king!

