是否可以修改装饰器功能
def wrap(function):
def wrapper(*args, **kwargs):
print(function.__name__)
return function(*args, **kwargs)
return wrapper
制作代码
@wrap
@wrap
@wrap
def hello():
print("Hello, world!")
hello()
打印
hello
hello
hello
Hello, world!
而不是
wrapper
wrapper
hello
Hello, world!
?我的目标是组成几个依赖于函数名的装饰器。
答案 0 :(得分:1)
以下代码应该可以使用,但我不太确定你的意图。
无论如何,相信我的胆量,我会避开这样的结构。
import functools
def wrap(function):
@functools.wraps(function)
def wrapper(*args, **kwargs):
print(function.__name__)
return function(*args, **kwargs)
return wrapper
@wrap
@wrap
@wrap
def hello():
print("Hello, world!")
hello()