如果我有一个包含多个条件语句的函数,其中每个分支都会执行并从函数中返回。那么我应该使用多个if语句还是if/elif/else语句呢?例如,假设我有一个函数:
def example(x):
if x > 0:
return 'positive'
if x < 0:
return 'negative'
return 'zero'
哪种写法更好:
def example(x):
if x > 0:
return 'positive'
elif x < 0:
return 'negative'
else:
return 'zero'
两者具有相同的结果,但其中一个是否更有效或被认为更符合惯用语?
编辑:
有几个人说在第一个示例中,两个if语句总是会被评估,但我并不这样认为
例如,如果我运行以下代码:
l = [1,2,3]
def test(a):
if a > 0:
return a
if a > 2:
l.append(4)
test(5)
l仍将等于[1,2,3]
return
语句的if..else
阶梯是终止的,因此它比我们可能想要允许落入下一个if
块的情况更不普遍。请参见我的答案。 - smci