Python: elif 还是新 if?
使用哪个更好:
if var in X:
#do_whatever
elif (var in Y):
#do_whatever2
还是:
if var in X:
#do_whatever
if var in Y:
#do_whatever2
假设变量不能同时出现在X和Y中……有没有什么规则或者常见的做法?我应该用elif吗?还是用一个新的if?或者其实没什么区别??
补充:很棒的回答……但是我能不能说,如果第一个语句(#do_whatever)以return或break结束,那么在它结束时,另一个条件就不会被测试,这样会浪费系统资源或者引发问题,那这样做就没问题了……我想……
5 个回答
2
如果你对数据不太了解,直接看代码的话,elif的写法能清楚地表达你的意图,所以更推荐使用这种方式。
而两个if语句的写法就比较难维护,即使加了注释,还是得去检查代码,增加了麻烦。
5
如果第一个说法是真的,那么第二个说法就不可能是真的(在这里就是你说的变量不能同时在X和Y里),那么你应该用elif。否则,第二个检查还是会执行,这样就浪费了系统资源,因为你知道它一定是假的。
16
在某些情况下,这个是有区别的。
看看这个例子:
def foo(var):
if var == 5:
var = 6
elif var == 6:
var = 8
else:
var = 10
return var
def bar(var):
if var == 5:
var = 6
if var == 6:
var = 8
if var not in (5, 6):
var = 10
return var
print foo(5) # 6
print bar(5) # 10