Python90-2 遵循PEP 8 建议

2022-12-06 09:24:34 浏览数 (2)

第2条:遵循PEP 8 建议

Item 2: Follow the PEP 8 Style Guide

PEP 8,全称Python Enhancement Proposal #8(Python增强建议),是标准化Python代码风格的指南。

从程序运行的角度,你可以用任何风格写Python,只要没有语法错误。但是使用一致的代码风格,可以使代码可读性更高。使用规范的代码风格会方便他人阅读你的代码,也能帮助你在之后修改代码,以及避免许多常见错误。PEP 8 提供了如何写干净的Python代码的丰富细节。随着Python发展它也在不断更新。可以在网上阅读:PEP 8 – Style Guide for Python Code | peps.python.org

小提示:很多开发环境提供了提供了PEP 8格式化工具。PyCharm中reformate快捷键ctrl alt enterPylint 工具是一个流行的静态Python代码分析工具。

下面是PEP8中常用的一些建议:

空格 White Space

Python中空格是一种语法,通过空格表示代码层级(for、if和def等)。下面是和空格有关的建议:

  • • 使用空格而不是table进行缩进(indentation)。
  • 4空格缩进表示不同代码级别。
  • • 每行不超过79个字符。
  • • 长表达式延续到另一行时应该有4空格的额外缩进。
  • 函数之间应该用2空行隔开。
  • 类中方法应该用1空行隔开。
  • • 字典中,key和冒号之间不要空格,在value前放1个空格。{key: value}
  • • 赋值时,=运算符前后1个空格。a = 42
  • • 对于类型注解(type annotations),变量名和冒号间没有空格,类型信息前1个空格。count: int = 10

命名 Naming

PEP 8给出一系列命名建议,有助于根据名字区分类型。

  • • 函数,变量和属性: lowercase_underscore
  • • 保护(Protected)实例属性: _leading_underscore
  • • 私有(Private)实例属性: __double_leading_underscore
  • • 类(Classes): CapitalizedWord
  • • 模块级别常量(Module-level constants): ALL_CAPS
  • • 实例方法: 第一个参数命名为self,表示实例本身
  • • 类方法: 第一个参数为cls,表示类本身

表达式和语句 Expressions and Statements

Python之禅写到:“应该有一种,且最好是唯一的方法去实现” PEP 8尝试在表达式和语句中遵循该风格。

  • • 使用内部否定(if a is not b)而不是外否定(if not a is b)
  • 不要使用长度==0(if len(somelist) == 0)的方式判断容器或序列为空,而是使用if not somelist,并且假定空值隐式地为False。类似地,判断容器或序列非空应该用if somelist,对非空值隐式地为True
  • • 避免把if,for,whileexcept语句都挤在一行,将他们分成多行会更清楚。
  • • 如果表达式不能放进一行,用圆括号包围它,加换行并且缩进使其易读。
  • • 尽量使用带括号的多行表达式而不是用连续字符。

Imports

  • • 在文件最上方进行import
  • • 用全称引入模块。例如,引入bar包中的foo模块,应该使用from bar import foo,而不是import foo
  • • 如果一定要相对引入(relative imports),使用显式的语法from . import foo
  • • 分部分引入,标准库、第三方、自己的模块。每部分按字母顺序。

Things to Remember

  • • 遵循PEP 8
  • • 风格统一有利于交流
  • • 风格统一有利于自己修改代码

0 人点赞