我只是想知道python中哪种方式更可取.想象一下两个功能:
def foo(key):
if bar.has_key(key):
return bar.get(key)
# do something with bar
# this will be executed if bar_key(key) is False
...
return something
Run Code Online (Sandbox Code Playgroud)
def foo(key):
if bar.has_key(key):
return bar.get(key)
else:
# do something with bar
# this will be executed if bar_key(key) is False
...
return something
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,唯一的区别就是else陈述.所以问题是它会以某种方式影响性能.或者是否有任何理由包含else此类功能?
如果选择在这两种方法之间,我会选择第一种方法. return很明确,执行在那时终止.我找到if x { return y } else { ... }了一个反模式出于这个原因(不仅仅是在Python中 - 我在C/C++代码中看到了它,它也让我感到烦恼).
如果要返回,else则完全不需要块,并且会导致可能非常大的代码块的无意义缩进.您拥有的嵌套结构越多,在阅读代码时保持头部正确的上下文就越困难.出于这个原因,当它不混淆逻辑时,我倾向于更少的嵌套,在这种情况下,我认为不会.