2014-09-24 55 views
0

我一直在研究一个问题,而且我不确定哪种风格/功能明智,这通常被认为是最佳实践。堆栈if语句或if-elif-else更好的Python风格?

我有一个函数,对同一个字符串进行多重检查,并返回一个基于该字符串的值。使用堆栈式if语句或if-elif-else语句是更好的样式还是函数?

例子:

def f(s): 
    if s == 'Hey': 
     return 'Sup.' 
    if s == "How's it going?" 
     return 'Not bad.' 
    return 'I have no idea what you said.' 

def f(s): 
    if s == 'Hey': 
     return 'Sup.' 
    elif s == "How's it going?" 
     return 'Not bad.' 
    else 
     return 'I have no idea what you said.' 
+0

'if/elif/else'暗示'异或'行为,换句话说,恰好一个案例应该是'真'。堆叠if语句表明可能会执行多个案例(即使在您的示例中它们不会)。 – CoryKramer 2014-09-24 13:54:10

回答

4

在这种情况下,这是一种风格选择,我会用第二种结构。这是因为它最能代表我认为更好的风格,如果你在每个块中没有返回语句。这里的前提是,你只需要满足一个条件并且只需要执行一个块。因此,使用明确的第二种结构。第一个建设(没有返回声明)留下了可能满足多个条件的可能性。

2

对于您的情况下,这并不重要的功能将真正的情况之后反正返回,对于非返回条件语句它始终是最好写其他..如果程序不需要通过这种方式来评估不必要的条件,