第二条: 遵循PEP8风格指南

Python Enhancement Proposal #8,也被称作PEP8,是如何规定Python代码格式的风格指南。当然你可以用你喜欢的方式写Python代码,只要它符合语法。然而,用一致的风格会使你的代码更亲近并且可读。在大型社区里与其它Python程序员分享同一种风格有利于促进在项目中协作。但是即使你是你的代码的唯一阅读者,遵循风格指南也将会使你后期的修改更容易。

PEP8对于有关如何写出清晰的Python代码有着详尽的描述。它会随着Python语言的发展而更新。在线上阅读整个指南是绝对值得的pep8。这里给出几条你应该一定去遵循的规则:

空白:在Python中,空白是有其语法意义的。Python程序员对于空白使得代码更清晰的效用上更为敏感。

  • 用空格而不是tabs来缩进。
  • 使用4个空格来作为每一层语法上有意义的缩进。
  • 每行长度应该是不超过79个字符。
  • 要把长的表达式延续到其它的行上时,除了它们的正常的缩进层次外要再额外加四个空格。
  • 在一个文件中,函数和类应该被两行空白行隔开。
  • 在一个类中,方法应该被一个空白行隔开。
  • 不要在列表索引,函数调用或者是关键字参数复制周围使用空格。
  • 使用一个-仅仅是一个-空格在变量复制前后。

命名:PEP8建议在语言的不同部分使用独特的风格命名。这使得在阅读代码的时候很容易区分那种类型对应每个命名。

  • 函数,变量和属性应该用小写下划线(lowercase_underscore)格式。
  • 受保护的实例属性应该用前置下划线(_leading_underscore)格式。
  • 私有的实例属性应该是双前置下划线(__double_leading_underscore)格式。
  • 类和异常应该使用首字母大写(CapitalizedWord)的格式。
  • 模块层级的常量应该是所有字母大写(ALL_CAPS)的格式。
  • 类中的实例方法应该使用self作为第一个参数名(self指代对象)。
  • 类方法应该使用cls作为第一个参数名(cls指代类)。

表达式和语句:Python之禅指出:应该有一个-并且最好只有一个-达成目标的明显的方法。PEP8尝试将这些规则,作为表达式与语句的一个指南。

  • 使用行内否定(if a is not b)而不是否定正向的表达式(if not a is b)。
  • 不要通过检测长度(if len(somelist) == 0)来检测空值(像[] or '')。使用if not somelist并且假设空值,会隐含的判断为False
  • 对待非空值的方式也一样(像[1]或者hi)。对于非空值,if somelist语句会隐含的判断为True
  • 避免在一行写if语句、for和while循环,和except语句。在多行来写会更清晰。
  • import语句一定要放在文件顶部。
  • 当导入模块的时候一定要使用绝对路径,而不是相对于当前模块路径的路径。例如,从bar包里面导入foo模块,你应该写from bar import foo,而不是import foo
  • 如果你必须要使用相对导入,使用清楚的语法form . import foo
  • 导入应该按照如下的顺序分为部分:标准库模块、第三方模块、你自己的模块。每个子部分应该按照字母的顺序进行导入。

注意:

Pylint工具(http://www.pylint.org/)是一个流行的Python源码静态分析器。Pylint提供了强制实行PEP8风格并且检测许多其它Python程序中常见类型的错误。

请记住

  • 当写Python代码的时候一定遵循PEP8风格指南。
  • 和大型的Python社区使用同样的风格有利于和他人协作。
  • 使用一致的风格使得之后更容易修改你自己的代码。

results matching ""

    No results matching ""