python樱花飘落代码超过最大递归深度(python动态樱花树代码)

http://www.itjxue.com  2023-02-04 04:03  来源:未知  点击次数: 

求问maximum recursion depth exceeded怎么解决

报错提示:超过最大递归深度。

解决办法:可以修改递归深度的值,让它变大大一点。

递归是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。使用递归解决问题,思路清晰,代码少。

扩展资料:

递归,就是在运行的过程中调用自己。

构成递归需具备的条件:

1. 子问题须与原始问题为同样的事,且更为简单;

2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。

在数学和计算机科学中,递归指由一种(或多种)简单的基本情况定义的一类对象或方法,并规定其他所有情况都能被还原为其基本情况。

参考资料:递归-百度百科

maximum recursion depth exceeded while calling a python object怎么办

今天在生产系统中查询产品时,莫名提示错误:maximum recursion depth exceeded while calling a Python object,根据错误日志提示,发现在查询产品时,系统会构造一个domain,查询所有库位的库存量。当仓库较多的时候,构造的这个domain比较长,然后解析这个domain的方法distribute_negate是递归调用,因为递归次数太多,所以就提示错误。

根据源码查看了生成domain的条件,这个部分不太好调整,所以后来直接找了个方法来增加递归的深度。在任意脚本中增加如下代码:

[python] view plain copy

import sys

sys.setrecursionlimit(1000000)

执行这个代码后,递归深度调整到一百万层,基本上足够使用了。

如何提高 python 的递归深度

Python默认递归深度为1000层。如果要提高这个数量,可以修改Python源码。

因为Python是开源的,并且用C语言写的。在源代码的某处有一个变量定义了递归深度,修改这个变量,重新编译Python,然后就可以了。

参考:刘江的Python教程

(责任编辑:IT教学网)

更多

推荐其他营销文章