风格:以`pass`,`return` /`continue`而不是无结尾的代码块

时间:2018-07-18 18:57:11

标签: python pep8

Python中的pass语句除填充空间外不执行任何操作。但是,在程序继续之前,我发现它对于指定一长串复杂的代码的结尾很有用:

...
if condition is True:
    ...
    pass
...

基本上,使用C或Java这样的语言,与将}放在自己的行上具有相同的效果。

类似地,我养成了习惯,在循环结束时用pass替换continue或在函数结束时用return替换,否则这些函数不会返回任何内容,例如相同的原因-并更清楚地说明哪个代码块结束了:

def someFunc():
    ...
    while someCondition is True:
        # complicated things
        ...
        continue
    ...
    return

当代码间隔很窄或很宽时,或者代码占用大量垂直空间时,我认为将这些语句放在代码块的末尾可以使控制流程更清晰。我已经进行了一些搜索,但没有找到一个好的信息来说明这是好还是不好的风格(为此主题制作好的搜索关键字非常困难)。而且,PEP8对此一无所获。我希望能就此问题发表意见,并找到共识。

1 个答案:

答案 0 :(得分:2)

摘自Robert C. Martin的“清洁代码”-

  

功能的第一条规则是它们应该

     

功能的第二条规则是,它们应该小于

来自The Zen of Python-

  

简单胜于复杂。

     

可读性计数。

以任何语言编写代码时,都应该编写易于阅读和理解的小段代码(方法,循环,if等)。 遵循此规则,您将不会像您提到的那样出现个冗长,复杂的代码块,因此需要使用任何passcontinue或{ {1}}将消失。

底线

如果到了要添加这些语句的地步-重构代码