Python PEP 8:模块开头的空行

Sup*_*ser 12 python coding-style pep8 pep

有一个问题是谁对此有所了解,但没有谈论我感兴趣的所有要点.

PEP 8说明了空白行:

Separate top-level function and class definitions with two blank lines.
Run Code Online (Sandbox Code Playgroud)

如果你有:

  1. 只有一个类的模块:

    # -*- coding: utf-8 -*-
    
    
    class A(object):
        pass
    
    Run Code Online (Sandbox Code Playgroud)

    你是否用两个空白行分隔了类的开头和编码注释?

  2. 带有import语句和类的模块:

    # -*- coding: utf-8 -*-
    
    import module
    
    
    class B(object):
        pass
    
    
    class C(object):
        pass
    
    Run Code Online (Sandbox Code Playgroud)

    您是否将import语句和编码注释与一个空行分开?

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

  3. 还有一个主要模块:

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

    你用两个空行分隔import语句和顶级函数吗?

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

Mic*_*x2a 8

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

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

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