python修饰器
什么是修饰器?
修饰器是一个函数,接收的唯一参数也是一个函数或方法,返回一个再输入函数基础上加以修饰的新的函数或方法(就能附带一些额外的功能)
了解一个简单的栗子
以下就是用代码实现修饰器的功能
1 | def wrapper_func(func):#修饰函数,传入参数为一个函数 |
输出结果:
1 | 我是一个修饰 |
上述代码加上语法糖,代码可以更加简洁:
1 | def wrapper_func(func):#修饰函数,传入参数为一个函数 |
输出结果同上
修饰器的执行顺序
一个有趣的“汉堡”
1 | def bread(func) : |
输出结果:
1 | </''' '''\> |
万能的修饰器
1 | def w_test(func): |
输出结果:
1 | test called |
修饰器的一些用途
装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。
比如用于计算函数运行实践的修饰器:
1 | import time |