作为通用规则,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
不是 ios
或 android
,您打算什么也不做,那么这完全没问题。
或者,您可以有一个映射 "platform > function",大致如下:
mapping = {'ios': do_something, 'android': do_something_else}
f = mapping.get(platform)
if f:
f()
这取决于您的代码,但在这种情况下,任何一种方式都可以。有一个合乎逻辑的原因,您的代码需要那样做,这很好。你不必一直遵守规则,你必须一直能够尝试不同的东西。
我写了一些 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
不是 ios
或 android
,您打算什么也不做,那么这完全没问题。
或者,您可以有一个映射 "platform > function",大致如下:
mapping = {'ios': do_something, 'android': do_something_else}
f = mapping.get(platform)
if f:
f()
这取决于您的代码,但在这种情况下,任何一种方式都可以。有一个合乎逻辑的原因,您的代码需要那样做,这很好。你不必一直遵守规则,你必须一直能够尝试不同的东西。