装饰器

廖大博客学习笔记

最近见天一直在看廖大的Python教程,却发现很多基础看着很简单,但却不会应用,归根结底还是因为理解不到位,故而又将教程学了一遍,并将自己的理解记录一下,也方便后面查阅。由于没有相关编程基础,有些理解可能是错的,敬请批评指正。

想深入具体学习廖大博客请移步廖雪峰的官方网站

装饰器

所谓装饰器,就是在不对原函数进行大的改动的情况下而达到扩展函数功能的目的。比如:

已存在一函数FA(),该函数分别在N个位置被调用,现在如果想记录函数FA()的调用情况,可在FA()函数中加入日志代码,此时的工作量不会太大。

如果类似地存在函数FB()、FC()……都需要记录日志的话,此时如果再一个个函数去添加代码的话工作量将会比较大,因此可用装饰器对这一过程进行抽象。

import functools

def log(text):

    def decorator(func):

            @functools.wraps(func)

            def wrapper(*args, **kw):

                    print ('%s: %s starting...' % (text, func.__name__))

                    func(*args, **kw)

            return wrapper

    return decorator


然后, 在FA()、FB()、FC()……等函数代码前加上一句代码即可:

@log('Function A')

def FA():

        pass


@log('Function B')

def FB():

        pass


@log('Function C')

def FC():

        pass




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值