Python 3.x Python-为包装函数指定与包装函数相同的名称
是否可以修改decorator函数Python 3.x Python-为包装函数指定与包装函数相同的名称,python-3.x,python-decorators,Python 3.x,Python Decorators,是否可以修改decorator函数 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() 印刷品 而不是 wr
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()
印刷品
而不是
wrapper
wrapper
hello
Hello, world!
??我的目标是组成几个依赖函数名的装饰器。下面的代码应该可以工作,尽管我不太确定您的意图 无论如何,相信我的勇气,我会避免这样的建设
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()
functools.update\u包装器?functoolsfunctools.wraps?谢谢,很有效!你想发布答案吗?如果没有,我将编辑问题以包含您的解决方案。@Rastapopulus目前做不了多少。我在机场,正要登机
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()