一般來說,死循環會引發 RecursionError 異常,且會導緻應用程序崩潰。
由於死循環形成瞭完整閉環迴路,且在短時間內,不停反復循環執行會消耗大量軟/硬件資源且不可接受。
若死循環遞歸深度較小,有時可能不會引發 RecursionError 異常,還可能不會導緻應用程序崩潰。
這種不引發異常且不導緻應用程序崩潰的淺遞歸死循環,是不穩定的。
像死循環但未形成完整迴路的高頻計算,是不會引發 RecursionError 異常的,且應用程序也不會崩潰。
由於短時間內,不停順序執行消耗的軟/硬件資源有限且可接受。
這種編程方式,稱為 自循環 。
若這種自循環不是想要的,應盡可能避免;因為有預期外的,不必要的軟/硬件資源消耗。
sys.getrecursionlimit() 可以獲取 Python 解釋器堆棧的最大遞歸深度,在 Windows 10 為 1000 (默認值從屬平颱)。
sys.setrecursionlimit(limit) 可以設置 Python 解釋器堆棧的最大遞歸深度,但過大 (或過小) 也可能引發 RecursionError 異常。
版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。