【发布时间】:2015-09-17 12:46:39
【问题描述】:
我试图理解下面的例子,我发现解释decorators:
#!/usr/bin/python
def get_text(name):
return "lorem ipsum, {0} dolor sit amet".format(name)
def p_decorate(func):
def func_wrapper(name):
return "<p>{0}</p>".format(func(name))
#return "1"
return func_wrapper
get_text = p_decorate(get_text)
print get_text("John")
这个的输出是:
<p>lorem ipsum, John dolor sit amet</p>
我决定尝试更改此功能并将return func_wrapper 注释掉并替换为return "1"。
当我这样做时,我得到了错误:
TypeError: 'str' object is not callable
我对此有 2 个问题:
-
当行
print get_text("John")被执行,是
def func_wrapper(name):初始化为
"John"?此行运行后的事件顺序是什么? 为什么我会收到这个错误,因为最后,
string最终还是不会被返回?
如果有人能用这段代码解释事件的流程,我将不胜感激。
【问题讨论】:
标签: python decorator python-decorators