装饰器原理,及多个装饰器的运用

现在有一个函数为普通攻击函数

def attack(target):

        print('对', target, '发动普通攻击')

现在需要你给它增添攻击特效(比如说火属性,水属性),这里要用到闭包

这样写的话会有一点麻烦,下边是优化过后的代码

这样写回省去了上边的 a1 = decorator(attack)这行代码

装饰器的用法,及多个装饰器的运用多个装饰器的

  多个装饰器的执行方法是按照先后顺序来的,自己可以打断点来看一下

类中的装饰器

装饰器可以装饰一个类中的函数方法,代码演示

 

 这里有一个重点,装饰器@,必须要放在类中标明什么方法@之下。

类中的装饰器可以装饰另一个类中的函数方法就是说我们可以先定义一个装饰器类,然后把要装饰的东西写好。在另一个类中调用代码演示

这里先定义一个装饰器类,并定义好各个装饰器 

红色箭头指向为两种不同的调用方式调用方法大体和上边相同

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值