我在https://www.youtube.com上得到了函数包装的示例,但它引发了异常。你知道吗
def addOne(myfunc):
def addOneInside(myfunc):
return myfunc()+1
return addOneInside
def oldFunc():
return 3
oldFunc=addOne(oldFunc)
print oldFunc()
错误是:
TypeError: addOneInside() takes exactly 1 argument (0 given)
任何人都能解释问题所在。你知道吗
addOneInside
不需要参数。myfunc
可以通过上下文访问。你知道吗把它改成
这里的术语有点奇怪-这不是严格的函数重写,而是函数包装。我想你想要的是一个装饰师。@bytesized在语法上是正确的,但是关于您正在尝试的内容还有很多需要学习的地方。下面是一篇很有帮助的文章(遍历闭包、局部函数和修饰符):http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/
相关问题 更多 >
编程相关推荐