相关疑难解决方法(0)

Python中的最大递归深度是多少,以及如何增加它?

我在这里有这个尾递归函数:

def recursiveFunction(n, sum):
    if n < 1:
        return sum
    else:
        return recursiveFunction(n-1, sum+n)

c = 998
print(recursiveFunction(c, 0))
Run Code Online (Sandbox Code Playgroud)

它可以工作到n = 997,然后它就会中断并吐出"比较时超出的最大递归深度" RuntimeError.这只是一个堆栈溢出?有办法解决它吗?

python recursion

357
推荐指数
13
解决办法
40万
查看次数

在python脚本中设置stacksize

我正在将csh脚本转换为python脚本.该脚本调用内存密集型可执行文件,需要非常大的堆栈,因此csh脚本将stacksize设置为unlimited:

limit stacksize unlimited
Run Code Online (Sandbox Code Playgroud)

当我尝试在python中重现这个脚本时,我以一种非常天真的方式执行它们os.system,例如:

os.system('some_executable')
Run Code Online (Sandbox Code Playgroud)

但我不知道如何通过无限制的堆栈大小来告诉操作系统运行这些可执行文件.有没有办法为python脚本中的调用指定stacksize?是否有一些我应该使用的低级系统调用?是否有一个控制它的模块(类似于shutil)?

python stack csh

25
推荐指数
3
解决办法
3万
查看次数

标签 统计

python ×2

csh ×1

recursion ×1

stack ×1