首页 > 解决方案 > 运行此代码时 python shell 崩溃

问题描述

我正在运行此代码但没有成功。

import sys

sys.setrecursionlimit(2147483647)
Gi = 0

def recur():
    global Gi
    Gi = Gi + 1
    recur()

recur()
print(Gi)
input()

我知道更改递归限制不好,但是我从没想过这会导致 Shell 崩溃。有人知道为什么吗?

标签: python-3.xrecursionsys

解决方案


每次执行,都会在内部recur执行另一个。recur当您这样做时,它会不断地添加到调用堆栈中,直到达到系统的内存限制。当它达到该限制时,它将由于堆栈溢出而崩溃。


推荐阅读