【问题标题】:Are stacked if-statements or if-elif-else better style for Python? [duplicate]堆叠的 if 语句或 if-elif-else 是 Python 更好的样式吗? [复制]
【发布时间】:2014-11-19 01:04:54
【问题描述】:

我一直在解决一个问题,但我不确定风格/功能是否明智,这通常被认为是最佳实践。

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

【问题讨论】:

  • if/elif/else 暗示XOR 行为,换句话说,恰好一种情况应该是True。堆叠if 语句表明可以执行多个案例(即使在您的示例中它们不会)。

标签: python coding-style pep8


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    对于您的情况,这无关紧要,因为函数无论如何都会在条件为真后返回,对于非返回条件,始终建议编写 else..if 结构,因为程序不必以这种方式评估不必要的条件。

    【讨论】:

      猜你喜欢
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多