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中文网其他相关文章!