Почему этот код дает ошибку: RuntimeError: maximum recursion depth exceeded during compilation
? print_test
никогда не вызывает себя, поэтому я думаю, что это не рекурсивная функция.
def print_test():
print("test")
return print_test
print_test() #prints 'test'
print()
#a quick way of writing "print_test()()()()()()()()()()()()()..."
eval("print_test"+"()"*10000) #should print 'test' 10000 times
Когда я протестировал его, он работал в Python 2.7.7rc1, но дал ошибку в Python 3.3.5. Pdb дает стек коротких вызовов, в отличие от высокого, который обычно существует при превышении максимальной глубины рекурсии.
Traceback (most recent call last):
File "/usr/lib/python3.3/pdb.py", line 1662, in main
pdb._runscript(mainpyfile)
File "/usr/lib/python3.3/pdb.py", line 1543, in _runscript
self.run(statement)
File "/usr/lib/python3.3/bdb.py", line 405, in run
exec(cmd, globals, locals)
File "<string>", line 1, in <module>
File "/home/beet/overflow.py", line 1, in <module>
def print_test():
Мне интересно это из любопытства, и поймите, что это не будет лучшая практика программирования.