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:模块开头的空行的主要内容,如果未能解决你的问题,请参考以下文章