Python装饰器应用示例

面向侧面的程序设计方法(Aspect Oriented Programming, AOP)是面向对象技术之后流行起来的一种程序设计技术,目的是从模块的侧面对模块的运行进行监督、统计、权限检查异常处理等工作。AOP主要是高级软件工程师在进行系统软件、框架、平台的开发时使用。

假设需要对程序员编写的每一个函数进行跟踪,看看哪些函数被调用了,调用时的参数和返回值分别是什么。要实现这个功能有两个方法:第一,让程序员在他/她写的每个函数里增加上述操作。显然这个方法相当麻烦,并且如果想要修改跟踪逻辑,则势必要更改所有代码。第二,采用Python的装饰器,下面是个例子:

装饰器应用示例

def trace(func):
   def _func(*args, **kwargs):
      result = func(*args, **kwargs)
      print('call %s(%s, %s): %s' % (func.__name__, args, kwargs, result))
      return result
   return _func

@trace
def add(a, b):
   return a+b

@trace
def mul(a, b):
   return a * b

if __name__ == '__main__':
    add(3, 5)
    add(5, 7)
    mul(7, 9)
    mul(9, 11)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

方林博士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值