是的,它可以防止堆栈溢出。Python(或更确切地说,cpython实现)无法优化尾部递归,无限制的递归会导致堆栈溢出。您可以使用以下方法检查递归限制sys.getrecursionlimit
:
import sys
print(sys.getrecursionlimit())
并使用以下方式更改递归限制sys.setrecursionlimit
:
sys.setrecursionlimit(1500)
但是这样做很危险-标准限制有些保守,但是Python堆栈框架可能会很大。
Python中的最大递归深度是多少,以及如何增加?
是的,它可以防止堆栈溢出。Python(或更确切地说,cpython实现)无法优化尾部递归,无限制的递归会导致堆栈溢出。您可以使用以下方法检查递归限制sys.getrecursionlimit
:
import sys
print(sys.getrecursionlimit())
并使用以下方式更改递归限制sys.setrecursionlimit
:
sys.setrecursionlimit(1500)
但是这样做很危险-标准限制有些保守,但是Python堆栈框架可能会很大。