python 如何修复递归错误:超过最大递归深度

jpfvwuh4  于 2022-10-30  发布在  Python
关注(0)|答案(1)|浏览(132)

问题是:

07.定义一个名为import_zip_codes_json()的函数,该函数将zip_codes. json作为列表导入工作目录中。

下面是代码:

import json
with open('zip_codes.json') as list:
  zip_codes_json = json.load(list)

(The'def'行是由老师定义的,我写的是下面的部分。)

def import_zip_codes_json() -> list:

    zip_codes_json = import_zip_codes_json()
    return zip_codes_json

type(zip_codes_json)

我得到了'list'作为我的返回,它是正确的。但是在运行了所有的代码之后,我得到了RecursionError。

ERROR: test_07_import_zip_codes_json (__main__.TestMidterm)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "<ipython-input-524-ba9f8f20ec9d>", line 48, in test_07_import_zip_codes_json
    zip_codes_json = import_zip_codes_json()
  File "<ipython-input-516-0c2ae51a67d5>", line 10, in import_zip_codes_json
    zip_codes_json = import_zip_codes_json()
  File "<ipython-input-516-0c2ae51a67d5>", line 10, in import_zip_codes_json
    zip_codes_json = import_zip_codes_json()
  File "<ipython-input-516-0c2ae51a67d5>", line 10, in import_zip_codes_json
    zip_codes_json = import_zip_codes_json()
  [Previous line repeated 941 more times]
RecursionError: maximum recursion depth exceeded

我在Google上搜索了解决方案,并尝试使用sys。setrecursionlimit(20000)

import sys
sys.setrecursionlimit(20000)

但仍然出现递归错误

ERROR: test_07_import_zip_codes_json (__main__.TestMidterm)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "<ipython-input-562-ba9f8f20ec9d>", line 48, in test_07_import_zip_codes_json
    zip_codes_json = import_zip_codes_json()
  File "<ipython-input-554-0c2ae51a67d5>", line 10, in import_zip_codes_json
    zip_codes_json = import_zip_codes_json()
  File "<ipython-input-554-0c2ae51a67d5>", line 10, in import_zip_codes_json
    zip_codes_json = import_zip_codes_json()
  File "<ipython-input-554-0c2ae51a67d5>", line 10, in import_zip_codes_json
    zip_codes_json = import_zip_codes_json()
  [Previous line repeated 19941 more times]
RecursionError: maximum recursion depth exceeded

我该如何解决这个问题?

p5cysglq

p5cysglq1#

def import_zip_codes_json() -> list:

    zip_codes_json = import_zip_codes_json()
    return zip_codes_json

import_zip_codes_json()做的第一件事就是调用它自己,然后调用它自己,然后调用它自己......永远。或者直到堆栈崩溃,你得到错误。
你为什么要这么做?

相关问题