作为通用规则,elif 是否必须在 python 后跟 else?

Does elif must followed by else in python as a common rule?

我写了一些 python 代码,例如:

if platform == 'ios':
    do_something()
elif platform == 'android':
    do_something_else()

而这段代码遭到了我的一位同事的强烈批评。他指责我为什么没有 else 块来处理其余部分。

在我看来,我需要做的就是处理这两种情况,因为我没有写else块。我的意思是对于其他情况,程序只会让它通过此检查并继续进行。

任何 if elif 块是否需要 else 块(遵守一些 PEP 规则)?

如果这是道德强制性的,我应该把我的代码写成:

if platform == 'ios':
    do_something()
if platform == 'android':
    do_something_else()

但我仍然觉得我的第一个街区还可以。我错了吗?

else 从语法的角度来看不是必需的,也不是 PEP8 强制执行的。如果 platform 不是 iosandroid,您打算什么也不做,那么这完全没问题。

或者,您可以有一个映射 "platform > function",大致如下:

mapping = {'ios': do_something, 'android': do_something_else}
f = mapping.get(platform)
if f:
    f()

这取决于您的代码,但在这种情况下,任何一种方式都可以。有一个合乎逻辑的原因,您的代码需要那样做,这很好。你不必一直遵守规则,你必须一直能够尝试不同的东西。