003 装饰器
1、
2、1个装饰器
需求:调用 f1 前,需要先验证
实现1:
实现2:
实现1需要进入 f1 函数内部修改原代码,这不符合封闭原则
实现3:
实现2好是好,但用起来有点费劲,python对此提供了一种简便的手段,即装饰器
3、2个装饰器
最终返回的结果是?
装饰器是从最里面开始装的,因为装饰器装的是函数,如果是从最外面即@makeItalic开始装此时还没有函数可以去装
@makeBold => test3 = makeBold(test3)
4、装饰器执行的时间
装饰的时候倒着装,你将来真正调用的时候还是从上往下调的
5、使用装饰器对无参数函数进行装饰
6、使用装饰器对有参数函数进行装饰
怎么对有参数的函数进行装饰
如果按照无参数的函数的方式去装饰,会抛出异常
7、装饰器对带有返回值的函数进行装饰
对 test 函数进行装饰,注意 test 函数有返回值
8、通用装饰器
有无返回值、有无参数都适合的装饰器
9、带有参数的装饰器
需要怎么修改呢?