我想从函数中获取输入:
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
这对我查找不是很有帮助。
答案 0 :(得分:1)
首先,没有修饰符,您只需将input_text
的返回值传递给居中函数。
def centering(s):
return '<center>{}</center>'.format(s)
centered_text = centering(input_text)
为您执行此操作的功能可能看起来像
def input_centered_text():
text = input('Temp the text:')
centered_text = centering(text)
return centered_text
可以从原始input_centered_text
产生input_text
的装饰器看起来像
def center(f):
def _():
centered_text = f()
return centered_text
return _
并且使用方式与之相似
def input_text():
text = input('Type the text:\n')
return text
input_centered_text = center(input_text)
或
@center
def input_centered_text(): # Note the change in the function name
text = input('Type the text:\n')
return text