擅长:python、mysql、java
<p>@BrenBarn的优秀解决方案的一个变体,由于打开的文件太多,导致失败的是RuntimeError(@~500个递归),而不是IOError(@~256个递归):</p>
<p>#递归.py你知道吗</p>
<pre><code>def func():
global x
x += 1
with open('recurse.py') as source:
string = source.read()
try:
exec(string, {'x': x})
except RuntimeError:
print('maximum recursion depth reached at', x)
try:
x
except NameError:
x = 0
func()
</code></pre>
<p>但是,您也可以根据需要展开递归堆栈(<code>sys.setrecursionlimit()</code>)和/或打开文件限制(<code>ulimit -n</code>)。你知道吗</p>