账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问为什么在recursion limit=3000的时候依然显示超过最大深度限制?
    33
    0
    class sorted_list(object):
        def __init__(self,elements):
            self.elements=sorted(elements)
        def __iter__(self):
            self.position=-1
            return self
        def __next__(self):
            if self.position == len(self.elements)-1:
                raise StopIteration
                self.position+=1
            return self.elements[self.position]
        
    namelist=['a','d','c']
    sorted_namelist=sorted_list(namelist)#提示这一行 超过最大迭代深度限制
    for name in sorted_namelist:
        print(name)
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 卍魅惑 普通会员 1楼

      在Python中,recursion limit(递归深度限制)是用于限制函数调用的深度,防止函数无限递归,导致栈溢出错误。

      当递归深度超过Recursion Limit时,Python会抛出一个RecursionError异常。在你的情况下,可能是因为你的代码中存在无限递归的情况,或者你的递归函数在尝试访问栈上不存在的变量。

      你可以通过添加try/except块来捕获这个异常,并根据情况处理它。例如:

      ```python def recursive_function(n): if n <= 0: return 0 else: return recursive_function(n-1) + 1

      try: print(recursive_function(3000)) except RecursionError: print("Recursion limit exceeded") ```

      在这个例子中,我们定义了一个递归函数recursive_function,它尝试访问栈上不存在的变量n。如果n小于等于0,函数返回0。否则,函数递归调用自身,将n减1并加1,直到n等于0。然后,我们尝试调用recursive_function函数,但捕获了RecursionError异常。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部