对于 Python 来说,堆叠式 if-语句或 if-elif-else 风格更好吗?

use*_*245 0 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.'
Run Code Online (Sandbox Code Playgroud)

或者

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.'
Run Code Online (Sandbox Code Playgroud)

Mic*_*ith 5

在这种情况下,这是一种风格选择,我会使用第二种结构。这是因为如果每个块中没有 return 语句,它最接近地代表了我认为更好的样式。这里的前提是您希望恰好满足一个条件并且恰好执行一个块。因此,请使用第二种结构来明确这一点。第一个构造(没有 return 语句)留下了满足多个条件的可能性。