返回顶部
首页 > 资讯 > 后端开发 > Python >Python的最大递归深度错误 “max
  • 553
分享到

Python的最大递归深度错误 “max

递归深度错误 2023-01-31 06:01:01 553人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

  今天在写爬虫的时候,发现了一个诡异的事情,使用str方法强制转换一个BeautifulSoup对象成字符串的时候报错了,提示是“maximum recursion depth exceeded while calling a Pytho

  今天在写爬虫的时候,发现了一个诡异的事情,使用str方法强制转换一个BeautifulSoup对象成字符串的时候报错了,提示是“maximum recursion depth exceeded while calling a Python object”,意思大致是“当调用该对象超过最大递归深度”

  报错如下:

  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\python27\lib\site-packages\bs4\element.py", line 1045, in __str__
    return self.encode()
  File "C:\Python27\lib\site-packages\bs4\element.py", line 1055, in encode
    u = self.decode(indent_level, encoding, fORMatter)
  File "C:\Python27\lib\site-packages\bs4\element.py", line 1126, in decode
    indent_contents, eventual_encoding, formatter)
  File "C:\Python27\lib\site-packages\bs4\element.py", line 1195, in decode_contents
    formatter))
  File "C:\Python27\lib\site-packages\bs4\element.py", line 1126, in decode
  ......
  
  File "C:\Python27\lib\site-packages\bs4\element.py", line 1126, in decode
    indent_contents, eventual_encoding, formatter)
  File "C:\Python27\lib\site-packages\bs4\element.py", line 1195, in decode_contents
    formatter))
  File "C:\Python27\lib\site-packages\bs4\element.py", line 1098, in decode
    text = self.format_string(val, formatter)
  File "C:\Python27\lib\site-packages\bs4\element.py", line 163, in format_string
    output = formatter(s)
  File "C:\Python27\lib\site-packages\bs4\element.py", line 120, in substitute_xml
    ns, EntitySubstitution.substitute_xml)
  File "C:\Python27\lib\site-packages\bs4\element.py", line 104, in _substitute_if_appropriate
    if (isinstance(ns, NavigableString)
RuntimeError: maximum recursion depth exceeded while calling a Python object

  而后更神奇的是我使用的ptpython并没有报错,直接通过了。

  其实原因是在Python里的递归调用是有限制的,可以使用sys模块里的getrecursionlimit方法查看的到,即(想深入的同学可以谷歌上搜索一番,这里提供笔者所搜索到的https://cyrusin.GitHub.io/2015/12/08/python-20151208/)

sys.getrecursionlimit()

打开终端运行Python,可以看到默认限制值为1000

wKiom1hXscDBcpqVAAAKssVwL6Y070.png-wh_50

而ptpython里默认限制值为2000,这也不难解释为什么python下直接运行会报最大深度递归错误而ptpython可以正常运行了。

wKiom1hXtBqjFGRnAAADxmCmvtk125.png-wh_50

  那么该来解决这个问题了,有get自然有set(当然还有其他方法比如达到深度限制时就做对应处理这方面不符合笔者目前需求,所以就不赘述,有需求的同学请自行谷歌百度一下),那么设置最大深度限制的方法就是setrecursionlimit了,至于设置值为多少你自行设置了

sys.setrecursionlimit(2000)

至此,问题解决!


--结束END--

本文标题: Python的最大递归深度错误 “max

本文链接: https://lsjlt.com/news/189420.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python的最大递归深度错误 “max
      今天在写爬虫的时候,发现了一个诡异的事情,使用str方法强制转换一个BeautifulSoup对象成字符串的时候报错了,提示是“maximum recursion depth exceeded while calling a Pytho...
    99+
    2023-01-31
    递归 深度 错误
  • C++ 函数的递归实现:递归深度有限制吗?
    c++++ 函数的递归深度受到限制,超过该限制会导致栈溢出错误。限制值因系统和编译器而异,通常在 1000 到 10000 之间。解决方法包括:1. 尾递归优化;2. 尾调用;3. 迭代...
    99+
    2024-04-23
    c++ 递归
  • python递归次数限制引起的错误
    使用BeautifulSoup时,可能会抛出如下错误: RecursionError: maximum recursion depth exceeded while calling a Python object 查看系统递归限制,调大即可...
    99+
    2023-01-31
    递归 次数 错误
  • C++ 函数递归详解:递归错误的常见原因
    递归函数的常见错误包括无限递归,导致函数无限调用自身;堆栈溢出,当递归调用过多时发生;逻辑错误,递归函数可能产生不正确的答案。实战案例中,使用递归计算阶乘,利用阶乘的定义将较大规模的阶乘...
    99+
    2024-04-30
    c++ 函数递归 堆栈溢出
  • Python怎么用递归实现求二叉树深度
    本篇内容介绍了“Python怎么用递归实现求二叉树深度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!其实就是求二叉树层级,比如一个单点就是一...
    99+
    2023-06-02
  • python递归解析JSON(目前最好的
    我们要完成的任务是输出JSON字典,并且对其中的每个元素,要输出它的所有父节点。那么很容易想到的做法就是递归解析。 我参考了别人的一些文章和回答,总结了如下的解决方案: from __future__ import print_f...
    99+
    2023-01-31
    递归 最好的 python
  • python二叉树的最大深度该怎样理解
    这期内容当中小编将会给大家带来有关python二叉树的最大深度该怎样理解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。二叉树的最大深度1 题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子...
    99+
    2023-06-19
  • Python的max()函数:获取列表中的最大值
    Python的max()函数:获取列表中的最大值在Python中,max()是一个内置函数,用于获取给定列表中的最大值。它的使用非常简单,只需要将列表作为参数传递给函数即可。例如,我们有一个包含一些数字的列表:numbers = [12, ...
    99+
    2023-11-18
    列表 max函数 获取最大值
  • ​如何设置SQL Server中错误日志的最大归档数量
    这篇文章给大家分享的是有关如何设置SQL Server中错误日志的最大归档数量的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 如何设置SQL Server的错误日志的最大归档数量...
    99+
    2024-04-02
  • python使用max函数返回参数的最大值
    在python中使用max函数返回参数最大值的方法max:max()函数的作用是返回给定参数的最大值。max()函数语法:max( x, y, z, .... )max()函数使用方法:print ("max(80, 100, 1000) ...
    99+
    2024-04-02
  • Python中最强大的错误重试库(tenacity库)
    目录1 简介2 tenacity中的常用功能2.1 tenacity的基础使用2.2 设置最大重试次数2.3 设置重试最大超时时长2.4 组合重试停止条件2.5 设置相邻重试之间的时...
    99+
    2024-04-02
  • springboot max-http-header-size最大长度的那些事及JVM调优方式
    目录问题关于http header最大长度的那些事问题原型问题解释扩展Tomcat修改maxParameterCount配置问题解决方案参考自定义tomcat配置问题 线上程序出现了...
    99+
    2024-04-02
  • C++实现LeetCode(104.二叉树的最大深度)
    [LeetCode] 104. Maximum Depth of Binary Tree 二叉树的最大深度 Given a binary tree, find its maximum...
    99+
    2024-04-02
  • C++怎么实现二叉树的最大深度
    本文小编为大家详细介绍“C++怎么实现二叉树的最大深度”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++怎么实现二叉树的最大深度”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。二叉树的最大深度Example:G...
    99+
    2023-06-19
  • 怎么用C++求出二叉树的最大深度
    这篇文章主要介绍“怎么用C++求出二叉树的最大深度”,在日常操作中,相信很多人在怎么用C++求出二叉树的最大深度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C++求出二叉树的最大深度”的疑惑有所帮助!...
    99+
    2023-06-20
  • 深度探索Golang中的错误处理机制
    深入理解Golang中的错误处理机制 Golang作为一门高效、并发性强的编程语言,其错误处理机制在编写程序时非常重要。在Golang中,错误被视为普通的返回值,而不是像其他语言一样通...
    99+
    2024-02-24
    机制 golang 错误处理
  • Java的最大栈深度与JVM核心知识介绍
    目录一、Java最大支持栈深度有多大?1、测试案例1.1、测试线程栈大小对栈深度的影响1.2、测试方法参数个对栈深度的影响2、结论二、重温JVM知识1. JDK,JRE,JVM的联系...
    99+
    2024-04-02
  • Python中最强大的错误重试库问题怎么解决
    本文小编为大家详细介绍“Python中最强大的错误重试库问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中最强大的错误重试库问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1 简...
    99+
    2023-06-30
  • C++ 递归的陷阱和解决方案:常见错误规避指南
    避免无界递归:设置递归基线,明确停止条件。优化递归效率:考虑使用循环或迭代代替深度递归调用。预防栈溢出:控制递归深度,利用优化技术或辅助数据结构。禁止修改传入参数:传递值副本或使用全局变...
    99+
    2024-05-02
    c++ 递归 陷阱 堆栈溢出
  • 深入了解Python递归函数的高级应用与优化技巧
    掌握Python递归函数的高级应用与优化策略 引言:递归函数是一种强大而常用的编程技巧,它能够有效解决问题,简化代码逻辑。然而,递归函数的性能问题常常困扰着程序员。本文将介绍Python中递归函数的高级应用及优化策略,并提供具体...
    99+
    2024-02-03
    高级应用 优化策略
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作