Python递归函数中为何此处的“else”语句是冗余的?
为什么这个递归函数里的
else是冗余的? 先看去掉else后完全等价的代码:
def print_n(s, n): if n <= 0: return print(s) print_n(s, n-1) print_n("spam", 5)
原因很直接:
- 当
if n <= 0的条件满足时,return语句会直接终止当前函数的执行,后面的print和递归调用根本不会被触发。 - 只有当
n > 0(也就是if条件不成立)的时候,才会执行后面的两行代码。 - 这时候加
else纯粹是画蛇添足——它包裹的代码本来就只会在if条件不满足时运行,有没有else逻辑完全一致,反而多了一层不必要的缩进,让代码显得冗余。
内容的提问来源于stack exchange,提问作者Tuff Fish
相关产品推荐
相关产品推荐

