堆叠if语句或if-elif-else更好的Python风格?

时间:2014-09-24 13:47:53

标签: python coding-style pep8

我一直在研究一个问题,而且我不确定通常被认为是最佳做法的风格/功能。

我有一个函数可以对同一个字符串进行多次检查,并根据该字符串返回一个值。使用堆叠的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.'

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

对于你的情况,这无关紧要,因为函数无论如何都会在真正的条件之后返回,对于非返回条件,总是建议写else..if结构,因为程序不需要那样评估不必要的条件。 / p>