[英]python decorator, decorate a recursive function to run it many times
我有一个递归函数(f调用自身):
def f(x) :
....
我想多次运行这个功能。 我使用以下装饰器:
def iter_f(func) :
def newf(x):
for i in range(10):
func(x)
return newf
@iter_f
def f(x): a RECURSIVE function.
当我调用f(x)时,我正在调用一个无限次迭代的函数。我很好奇仍然使用装饰器的解决方案是什么,没有在新函数g中包装f,并装饰g。
谢谢。
感谢您指出问题是由于f是递归的。
在python中装饰递归函数这个帖子有类似的问题,也许这不是一个使用装饰器的好地方?
这应该工作
def iter_f(func):
def newf(*args, **kwargs):
for i in range(10):
func(*args, **kwargs)
return newf
@iter_f
def f(x):
尝试这个:
def iter_f(func) :
def newf(x):
for i in range(10):
func(x)
newf._original = func
return newf
@iter_f
def f(x):
...
call f._original(y)
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.