Python 是否最佳化尾遞歸?
Python 不會優化尾遞歸,正如其創建者 Guido van Rossum 明確指出的那樣。 Rossum 優先考慮適當的回溯而不是尾遞歸的潛在優化。
為什麼 Python 不優化尾遞歸
Rossum 認為保持生成準確回溯的能力更重要比優化尾遞歸。回溯對於調試和理解程式碼的執行方式至關重要。
手動尾遞歸消除
儘管 Python 缺乏尾遞歸優化,但您可以使用轉換手動消除遞歸。將遞歸函數轉換為 while 循環,並在循環內更新參數,而不是使用尾遞歸。
範例:尾遞歸消除
def trisum(n, csum): while True: # Change recursion to a while loop if n == 0: return csum n, csum = n - 1, csum + n # Update parameters instead of tail recursion
以上是Python 是否優化尾遞歸?的詳細內容。更多資訊請關注PHP中文網其他相關文章!