现在有一个函数为普通攻击函数
def attack(target):
print('对', target, '发动普通攻击')
现在需要你给它增添攻击特效(比如说火属性,水属性),这里要用到闭包
这样写的话会有一点麻烦,下边是优化过后的代码
这样写回省去了上边的 a1 = decorator(attack)这行代码
装饰器的用法,及多个装饰器的运用多个装饰器的
多个装饰器的执行方法是按照先后顺序来的,自己可以打断点来看一下
类中的装饰器
装饰器可以装饰一个类中的函数方法,代码演示
这里有一个重点,装饰器@,必须要放在类中标明什么方法@之下。
类中的装饰器可以装饰另一个类中的函数方法就是说我们可以先定义一个装饰器类,然后把要装饰的东西写好。在另一个类中调用代码演示
这里先定义一个装饰器类,并定义好各个装饰器
红色箭头指向为两种不同的调用方式调用方法大体和上边相同