我想在装饰器的帮助下打印出一些内容,但是会出现无类型错误
def deco(func):
def wrapper():
return "<it>{}</it>".format(func)
@deco
def funct():
return 'some'
funct()
TypeError: 'NoneType' object is not callable
答案 0 :(得分:1)
这里
def deco(func):
def wrapper():
return "<it>{}</it>".format(func())
return wrapper
@deco
def funct():
return 'some'
print(funct())
输出
<it>some</it>
答案 1 :(得分:1)
由于从未调用过wrapper()
,因此deco
返回了None
。然后,您尝试调用此返回值,从而导致错误。
要修复此问题,只需将包装返回到装饰器中即可
return wrapper