Python的装饰器Decorator

简介

Python中的装饰器,主要是在不改变原有函数的情况下增强这个函数的功能,本质就是一个返回函数的高阶函数

简单装饰器
定义
def log(func):
    @functools.wraps(func)    # 相当于wrapper.__name__ = func.__name__
    def wrapper(*args, **kw):
        print('start call %s' % func.__name__)
        return func(*args, **kw)
    return wrapper
使用
>>>@log    # 相当于执行语句:func1 = log(func1)
...def func1():
...    print("func1")
>>> 
>>>func1()
start call func1
func1

>>>
带参数的装饰器
定义
def log(level):
    def decorator(func):
        @functools.wraps(func)    # 相当于wrapper.__name__ = func.__name__
        def wrapper(*args, **kwargs):
            print('%s: start call %s' % (level, func.__name__))
            return func(*args, **kwargs)

        return wrapper

    return decorator
使用
@log('DEBUG')    # 相当于执行语句:func1 = log('DEBUG')(func1)
def func1():
    print("func1")

func1()
DEBUG: start call func1
func1

后续再补充,类里面的装饰器用法

未完,待续…

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值