【发布时间】:2021-02-05 13:46:25
【问题描述】:
我有一个必须将 HTML 标记添加到字符串的装饰器。 如果装饰器必须包装一个固定的字符串,它就可以正常工作。
def tagger(fn):
def wrapper(*x):
return "<strong>" + fn() + "</strong>"
return wrapper
@tagger
def foo():
return 'Hello'
print(foo())
但是如果我去掉固定字符串并给函数foo()添加一个参数,装饰器就不起作用了。
def tagger(fn):
def wrapper(*x):
return "<strong>" + fn() + "</strong>"
return wrapper
@tagger
def foo(x):
return str(x)
print(foo('Hello'))
我做错了什么?
【问题讨论】:
-
fn()呼叫foo()。foo需要一个参数,但你没有传递一个。您的意思是通过*x吗?fn(*x). -
TNX。我错过了。