查看文档,以了解装饰器如何工作。这是您要求的:
from functools import wrapsdef makebold(fn): @wraps(fn) def wrapped(*args, **kwargs): return "<b>" + fn(*args, **kwargs) + "</b>" return wrappeddef makeitalic(fn): @wraps(fn) def wrapped(*args, **kwargs): return "<i>" + fn(*args, **kwargs) + "</i>" return wrapped@makebold@makeitalicdef hello(): return "hello world"@makebold@makeitalicdef log(s): return sprint hello() # returns "<b><i>hello world</i></b>"print hello.__name__ # with functools.wraps() this returns "hello"print log('hello') # returns "<b><i>hello</i></b>"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)