13

有一个问题谁处理这个但不谈论我感兴趣的所有观点。

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()
    

    是否用两个空行分隔导入语句和顶级函数?

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

4

1 回答 1

8

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

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

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

于 2013-04-08T21:12:06.320 回答