下一个是我的代码,它可以打印'xxx'
,但最后运行错误:
def a(object):
print 'xxx'
@a
def b():
return 'bbb'
b()
在你的答案中,请尝试使用代码示例而不是文本,因为我的英语不是很好。谢谢。
答案 0 :(得分:5)
装饰器表单@a
表示:
@a
def b...
与完全相同:
def b...
b = a(b)
所以,将a
写为高阶函数,AKA HOF :具体来说,是一个以函数对象作为参数的函数,并返回一个功能对象。
当你在关于 a
应该 DO 的问题中给出 NO 这个想法时,你真正做到了不可能给出任何有意义的代码示例:良好的英语与否,你真的污染了SO,而不是通过你的问题做出贡献,因为你从未解释 WHAT 你想要完成在你的代码中!!!
答案 1 :(得分:1)
def a(b):
print 'xxx'
return b
@a
def b():
return 'bbb'
b()
这与:
相同def a(b):
print 'xxx'
return b
def b():
return 'bbb'
b = a(b)
b()