RuntimeError: maximum recursion depth exceeded python递归深度报错
这段时间用Python写了一个爬冲脚本,在抓取页面采用广度优先遍历抓取。但是当遍历到900多时就会出现莫名其妙的错误,通过pdb调试发现是:
RuntimeError: maximum recursion depth exceeded
在网上查了,发现python默认的递归深度是很有限的,大概是900多的样子,当递归深度超过这个值的时候,就会引发这样的一个异常。
解决的方式是手工设置递归调用深度,方式为
- import sys
- sys.setrecursionlimit(1000000) #例如这里设置为一百万 设置很大的话也会造成python解释器解释不了
递归的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import
time
import
sys
sys.setrecursionlimit(
10000
)
def
fun(n):
if
n
=
=
0
:
return
10
else
:
m.append(n )
return
fun(n
-
1
)
date_time
=
time.time()
m
=
[]
fun(
1000
)
print
len
(m)
print
time.time()
-
date_time
|