Python PEP 8:模块开头的空行

时间:2013-04-08 20:57:42

标签: python coding-style pep8 pep

有一个question对此有所了解,但没有谈论我感兴趣的所有观点。

PEP 8说明了空白行:

Separate top-level function and class definitions with two blank lines.

然后,如果你有:

  1. 只有一个类的模块:

    # -*- coding: utf-8 -*-
    
    
    class A(object):
        pass
    

    您是否将类的开头和编码注释分隔为两个空行?

  2. 包含import语句和类的模块:

    # -*- coding: utf-8 -*-
    
    import module
    
    
    class B(object):
        pass
    
    
    class C(object):
        pass
    

    您是否将导入语句和编码注释分隔为一个空行?

    并且导入语句和类的开头有两个空行?

  3. 主要模块:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import module
    
    
    def main():
        a = module.A()
        return 0
    
    
    if __name__ == '__main__':
        status = main()
    

    您是否使用两个空行分隔import语句和顶级函数?

    顶级函数的结尾和带有两个空行的条件语句?

1 个答案:

答案 0 :(得分:8)

有一个名为pep8的Python模块可以检查您的代码,看它是否符合pep8指南。

我尝试在你列出的例子上运行pep8,以及它们的几个变体,一般来说,pep8程序接受所有这些符合pep8指南。所以基本上,你所有问题的答案都是

确实存在某种程度的主观性 - 例如,您可以在主要功能和if __name__ == '__main__'段之间有两个或一个换行符。但是,我不太担心pep8合规性 - 只需下载并安装pep8程序以及其他代码分析器(例如pylint)。只要您的代码通过了这些测试,就足够了。