美文网首页
Python中递归的最大次数(转)2018-06-14

Python中递归的最大次数(转)2018-06-14

作者: 开子的私家地 | 来源:发表于2018-06-14 12:09 被阅读30次

Python中递归的最大次数

实际应用中遇到了一个python递归调用的问题,报错如下:
RuntimeError: maximum recursion depth exceeded while calling a Python object
网上找了一下,原来Python确实有递归次数限制,默认最大次数为1000
在正常的python里:

In [1]: sys.setrecursionlimit? 
Type:   builtin_function_or_method 
Base Class: <type 'builtin_function_or_method'> 
String Form:    <built-in function setrecursionlimit> 
Namespace:  Interactive 
Docstring: 
     setrecursionlimit(n) 
      
     Set the maximum depth of the Python interpreter stack to  
n.  This limit prevents infinite recursion from causing an  
overflow of the C stack and crashing Python.  The highest  
possible limit is platform-dependent. 

那么如何进行判断处理呢?下面给出两段代码,供参考。
代码如下:

def recursion(n): 
    if(n <= 0): 
        return 
        print n 
    recursion(n - 1) 

if __name__ == "__main__":
    recursion(1000)

当在我自己的机器运行以上代码时,发现最多能打印到998,然后就会抛出 “RuntimeError: maximum recursion depth exceeded” 的错误了。 嘿,还真有限制。但转念一想,python不会这么弱吧。经过一番查找,发现这是python专门设置的一种机制用来防止无限递归造成Python溢出崩溃, 最大递归次数是可以重新调整的。 (http://docs.python.org/2/library/sys.html#sys.setrecursionlimit),修改代码如下:

import sys
sys.setrecursionlimit(1500) # set the maximum depth as 1500

def recursion(n): 
    if(n <= 0): 
        return 
        print n 
    recursion(n - 1) 

if __name__ == "__main__":
    recursion(1200)

再次运行,顺利通过!!!

相关文章

  • Python中递归的最大次数(转)2018-06-14

    Python中递归的最大次数 实际应用中遇到了一个python递归调用的问题,报错如下:RuntimeError:...

  • maximum recursion depth exceeded

    python报错超过最大递归深度 递归,是在运行的过程中调用自己。python默认的递归深度是很有限的,大约900...

  • python中最大递归限制

    在python中默认最大递归次数是998,网上说是1000,998是我用代码测试出来的。 当传入998时,也就是递...

  • python 递归限制

    python不能无限的递归调用下去。并且当输入的值太大,递归次数太多时,python 都会报错 首先说结论,pyt...

  • 13_Python递归函数_全栈开发学习笔记

    1. 初识递归 什么是递归:在函数中调用自身函数最大递归深度默认是997/998 —— 是python从内存角度出...

  • Python递归的最大层数

    Python的最大递归层数是可以设置的,默认的在window上的最大递归层数是998 注意:

  • No_16_0321 Java基础学习第二十一天

    [TOC] 递归 递归概述 方法定义中调用方法本身的现象 递归注意事项 要有出口,否则就是死递归 次数不能太多,否...

  • Python语言程序---代码复用与函数递归(二)

    Python语言程序---代码复用与函数递归(二) 函数递归 在函数定义中,调用函数自身的方式就是递归。 递归并不...

  • NO.44 递归

    递归:方法自己调用自己 递归的弊端:不能调用次数过多,容易导致栈内存溢出 递归的好处:不用知道循环的次数 构造方法...

  • 递归

    递归:在方法定义中调用方法本身的现象。注意事项:1、递归一定要有出口,否则就是死递归。2、递归次数一定不能太多,否...

网友评论

      本文标题:Python中递归的最大次数(转)2018-06-14

      本文链接:https://www.haomeiwen.com/subject/lbxnkftx.html