|
是网上一篇文章,讲尾递归优化的
代码如下:
- import sys
- class TailRecurseException:
- def __init__(self, args, kwargs):
- self.args = args
- self.kwargs = kwargs
- def tail_call_optimized(g):
- def func(*args, **kwargs):
- f = sys._getframe()
- if f.f_back and f.f_back.f_back and f.f_back.f_back.f_code == f.f_code:
- raise TailRecurseException(args, kwargs)
- else:
- while 1:
- try:
- return g(*args, **kwargs)
- except TailRecurseException, e:
- args = e.args
- kwargs = e.kwargs
- func.__doc__ = g.__doc__
- return func
复制代码
#使用方法:在要递归的python代码开头加上这段代码,然后在开头调用@tail_call_optimized即可
可是我在python 3.3下运行是这行:except TailRecurseException, e: 语法错误,怎么回事?
|
|