请考虑以下示例。
def decorator(function_to_decorate):
def wrapper():
print('Entering', function_to_decorate.__name__)
function_to_decorate()
print('Exiting', function_to_decorate.__name__)
return wrapper
@decorator
def func():
print("Original function.")
func()
由于语法只是 的简写,因此必须返回某些内容是合乎逻辑的。我的问题是:为什么装饰器以这种方式定义,而不是没有返回值:?返回包装器函数的目的是什么?@decoratorfunc = my_decorator(func)my_decoratormy_decorator(func)wrapper
编辑
装饰器如何比简单的包装器做得更多?
def wrapper(function_to_decorate):
print('Entering', function_to_decorate.__name__)
function_to_decorate()
print('Exiting', function_to_decorate.__name__)
def func():
print("Original function.")
wrapper(func)
芜湖不芜
相关分类