Python的装饰器Decorator

xiaoxiao2021-02-28  35

简介

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

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

未完,待续…

转载请注明原文地址: https://www.6miu.com/read-2628216.html

最新回复(0)