gpt4 book ai didi

python - 控制无限递归的更好方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:15:11 26 4
gpt4 key购买 nike

我想知道是否有一种标准方法或比我下面的代码更好的方法来控制无限递归?我希望我的递归函数在最大尝试后放弃。下面的代码通过引入 attempt 方法参数并在递归调用期间递增它来实现。有没有更好的办法?

def Rec(attempt=0):
if attempt==10:
return()
else:
print(attempt)
Rec(attempt=attempt+1)

Rec()

最佳答案

也有这种方式但不推荐用于你想做的事情 - 我只是发布它以供引用,在其他情况下也很好用......

#!/usr/bin/env python 

import sys
sys.setrecursionlimit(5)

def Rec(attempt=0):
print attempt
Rec(attempt=attempt+1)

try:
Rec()
except RuntimeError:
print 'maximum recursion depth exceeded'

来自 sys.setrecursionlimit(limit)更清楚地说,正如 python 文档中所述,sys.setrecursionlimit(limit) 所做的是:

Set the maximum depth of the Python interpreter stack to limit. This limit prevents infinite recursion from causing an overflow of the C stack and crashing Python.

The highest possible limit is platform-dependent. A user may need to set the limit higher when she has a program that requires deep recursion and a platform that supports a higher limit. This should be done with care, because a too-high limit can lead to a crash.

所以在我看来,除非您非常清楚自己在做什么,否则不要乱用 Python 解释器堆栈

关于python - 控制无限递归的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43010264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com