使用`if…else`或`if…return是否重要; {暗示其他}`? [关闭]

问题描述 投票:3回答:2

这两个模式产生相同的结果。使用哪一个无关紧要?为什么?

我更喜欢第二个,它缩进的少,对我来说看起来更干净,但是我没有看到它使用太多(在我去过的地方)。如果由于某些原因建议使用不当,我不想定居并使用它。

IF ... ELSE

if not packages:
    help('download')
else:        
    for p in packages:
        do_download(p)
        verify_md5(p)
        etc(p)

如果...返回;隐式否则

if not packages:
    help('download')
    return

for p in packages:            
    do_download(p)
    verify_md5(p)
    etc(p)
python control-flow
2个回答
6
投票

这是一种风格,但是我总是更喜欢使用else。正如您在问题标题中清楚指出的那样,没有else会使它隐式出现,我坚信易于阅读和理解的显式代码。

也来自The Zen of Python

Explicit is better than implicit.

6
投票

来自The Zen of Python

平面比嵌套更好。

所以第二种方法更像Pythonic。

[我个人发现,与嵌套代码相比,平面代码更易于阅读,并且出错率也较低(例如,else语句未正确排列可能很难调试)。当然,这些都是主观判断。

© www.soinside.com 2019 - 2024. All rights reserved.