Python PEP 8:模块开头的空行

Posted

技术标签:

【中文标题】Python PEP 8:模块开头的空行【英文标题】:Python PEP 8: Blank lines at the beginning of a module 【发布时间】:2013-03-31 02:37:26 【问题描述】:

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

PEP 8 提到了空行:

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

如果你有:

    只有一个类的模块:

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

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

    带有 import 语句和类的模块:

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

    导入语句和编码注释用一个空行隔开吗?

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

    还有一个主模块:

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

    导入语句和顶层函数用两个空行隔开吗?

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

【问题讨论】:

【参考方案1】:

有一个名为 pep8 的 Python 模块可以检查您的代码是否符合 pep8 准则。

我尝试在您列出的示例以及其中的几个变体上运行 pep8,通常,pep8 程序接受所有这些示例都符合 pep8 指南。所以基本上,您所有问题的答案都是是的

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

【讨论】:

为什么要测试 PEP-8 合规性,然后当您可以自动修复它时必须修复它github.com/psf/black

以上是关于Python PEP 8:模块开头的空行的主要内容,如果未能解决你的问题,请参考以下文章

python 脚本去除#开头和空行

Python编码规范

Python--PEP8编码规范

PEP 8 python编程规范

PEP 8 -- Python代码格式规则

Python Enhancement Proposal #8PEP8