装饰器
我的理解:
函数装饰器用于改变函数的行为;
类装饰器用于改变类的行为。
书上写的:
函数装饰器可以用来管理函数调用和函数对象;
类装饰器可以用来管理类实例和类自身。
(《Python 学习手册(第 4 版)》 - P980)
函数装饰器
(Python 学习手册 982——986)
1 个最简单的函数装饰器的演进
# 可能是最简单的装饰器
def decorator0(func):
def wrapper(args):
func(args)
return wrapper
# 修改装饰器,使它支持任意数量的位置参数
def decorator1(func):
def wrapper(*args):
func(*args)
return wrapper
# 修改装饰器,使它支持任意数量的关键字参数
def decorator2(func):
def wrapper(*args, **kwargs):
func(*args, **kwargs)
return wrapper
# 修改装饰器,使它能够返回【被装饰函数】的返回值
def decorator3(func):
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
# 简单改动
def decorator4(func):
def wrapper(*args, **kwargs):
return_value = func(*args, **kwargs)
return return_value
return wrapper
# 修改装饰器,使它能够在【被装饰函数】调用前,做一些操作
def decorator5(func):
def wrapper(*args,