最好使用:
if var in X:
#do_whatever
elif (var in Y):
#do_whatever2
或:
if var in X:
#do_whatever
if var in Y:
#do_whatever2
假设var不能同时包含X和Y ......是否有任何规则或常规做法?我应该使用elif吗?还是一个新的if?或者没关系??
编辑:很好的答案..但是,如果第一个语句(#do_whatever)以返回或中断结束,我可以这么说吗?在最后,其他条件将不会被测试,从而浪费系统资源或造成麻烦,可以做任何事情......我猜......答案 0 :(得分: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
答案 1 :(得分:5)
如果第一个句子为真,那么第二个语句是不可能的(就像这里的情况一样,因为你说var不能同时在X和Y中),那么你应该使用elif。否则,第二次检查仍然会运行,如果你知道它会变错,这会浪费系统资源。
答案 2 :(得分:2)
如果您需要执行这两项检查,则应使用两个单独的if
。如果您想检查一个或订单,则应始终使用elif
,因为
性能方面,您还应该考虑首先测试最可能的情况。
答案 3 :(得分:2)
在不知道数据的情况下查看代码,然后elif案例明确表明了您的意图并且是首选。
两个if语句案例也难以维护,即使添加了评论,仍然需要检查它们。
答案 4 :(得分:1)
如果var
和X
中都不能Y
,那么您应该使用elif
。这样,如果var in X
为true
,则您无需毫无意义地评估var in Y
。