第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+enter
。Pylint 工具是一个流行的静态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
,while
和except
语句都挤在一行,将他们分成多行会更清楚。 -
• 如果表达式不能放进一行,用圆括号包围它,加换行并且缩进使其易读。
-
• 尽量使用带括号的多行表达式而不是用
连续字符。
Imports
-
• 在文件最上方进行import
-
• 用全称引入模块。例如,引入bar包中的foo模块,应该使用
from bar import foo
,而不是import foo
-
• 如果一定要相对引入(relative imports),使用显式的语法
from . import foo
-
• 分部分引入,标准库、第三方、自己的模块。每部分按字母顺序。
Things to Remember
-
• 遵循PEP 8
-
• 风格统一有利于交流
-
• 风格统一有利于自己修改代码
原文始发于微信公众号(一只大鸽子):Python90-2 遵循PEP 8 建议
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/237429.html