python中装饰器的原理及用法

要想理解python中装饰器的原理首先要明白一下两点:

1:函数名称是指向函数所在地址的指针

2:装饰器的的作用等价于callfucn=decfucn(callfucn)

这两点在后期的分析中要牢牢的记住。

以一段代码为例:

def decofun(func):

      def _deco(a, b):

              print("before callfunc() called.")

              func(a, b)

              print(" after callfunc() called. result: %s" % ret)

      return _deco

 

@decofun

def callfunc(a, b):

       print(" %s,%s." % (a, b))

      return a + b

callfunc(1, 2)

首先我们把@decofun替换成 callfunc = decofun(callfunc), decofun(callfunc)之后后的返回结果是_deco,是指向_deco函数的指针,也就是说callfunc也是指向_deco函数的指针,callfunc(1,2)即执行的是_deco(1,2)这个函数。这就是python装饰器的原理。

python的装饰器的主要作用在:原函数、对象的加强,相当于重新封装,是有在函数调用的情况下才会执行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值