【发布时间】:2020-04-23 11:11:30
【问题描述】:
我想从函数中获取输入:
def input_text():
text = input('Type the text:\n')
# deco_required = input('Format variable\n')
return text
然后我想要一个装饰器来格式化上面输入的文本:
def center(input_text):
def centering(*args,**kwargs):
t = '<center>{}</center>' .format(kwargs)
return input_text
return centering
我认为这是正确的做法:
@centring
input_text()
我收到以下错误:
File "<ipython-input-10-95c74b9f0757>", line 2
input_text()
^ SyntaxError: invalid syntax
这对我查找不是很有帮助。
【问题讨论】:
-
你装饰了一个函数定义,而不是一个调用。如果您想在调用时将装饰器应用于函数,则需要执行例如
center(input_text)()。但请注意,您的装饰器本身也没有意义,您从调用包装函数获得输入,not 来自对包装器的调用。 -
你需要查看你的代码,有拼写错误的函数名(“centring”)和多余的空格(在
.format(kwargs)之前。我还假设你想返回t,而不是@ 987654328@centering