Steven D'Aprano schrieb:
I'm seeing a strange interaction between timeit and recursion.
sys.getrecursionlimit()
1000
from timeit import Timer
setup = """def test(n=1):
... if n < 999: return test(n+1)
... return None
... """
exec setup
test() is None
True
Timer('test()', setup).repeat(number=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/timeit.py", line 188, in repeat
t = self.timeit(number)
File "/usr/lib/python2.5/timeit.py", line 161, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 9, in inner
File "<timeit-src>", line 4, in test
File "<timeit-src>", line 4, in test
File "<timeit-src>", line 4, in test
...
File "<timeit-src>", line 4, in test
I don't understand why my recursive function hits the recursion limit
inside the timeit.Timer when it works outside of it.
Is there any way to see the current recursion depth at a particular
moment?
import inspect
def rec(count=100):
if not count:
return
print len(inspect.getouterframes(inspect.currentframe()))
rec(count-1)
rec()
Diez
--
http://mail.python.org/mailman/listinfo/python-list