第十七章:运行时特性-sys:系统特定配置-内存管理和限制-递归

it2022-05-09  27

17.2.3.3 递归 Python应用中允许无限递归,还可能会引入解释器本身的栈溢出,导致崩溃。为了消除这种情况,解释器提供了一种方法,可以使用setrecursionlimit()和getrecursionlimit()来控制最大递归深度。

import sys print('Initial limit:',sys.getrecursionlimit()) sys.setrecursionlimit(10) print('Modified limit:',sys.getrecursionlimit()) def generate_recursion_error(i): print('generate_recursion_error({})'.format(i)) generate_recursion_error(i + 1) try: generate_recursion_error(1) except RuntimeError as err: print('Caught exception:',err)

一旦栈大小达到递归限制,解释器便会产生一个RuntimeError异常,使程序有机会处理这种情况。


最新回复(0)