PEP8-python编码风格
Python - PEP8 编码风格
风格指南的核心在于一致性。与风格指南保持一致非常重要。项目内部的一致性更为重要。而模块或功能内部的一致性则尤为重要。
注意:不要为了遵循本PEP而破坏向后兼容性
忽略特定准则的其他一些充分理由:
- 应该改指南会降低代码的可读性,即使对于习惯阅读遵循此PEP的代码的人来说也是如此。
- 与周围的代码保持一致
- 当代码需要与不支持样式指南推荐的功能的旧版本Python保持兼容时
代码布局
缩进
每个缩进级别使用4个空格
续行应该垂直对齐换行元素,要么使用 Python 的圆括号、方括号和花括号内的隐式行连接,要么使用悬挂缩进 。使用悬挂缩进时应考虑以下几点:第一行不应包含任何参数,并且应使用进一步的缩进来清楚地将其与续行区分开来:
# Correct:
# Aligned with opening delimiter.
foo = long_function_name(var_one, var_two,
var_three, var_four)
# Add 4 spaces (an extra level of indentation) to distinguish arguments from the rest.
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
# Hanging indents should add a level.
foo = long_function_name(
var_one, var_two,
var_three, var_four)
制表符还是空格
空格是首选的缩进方法
制表符应该仅用于与已经使用制表符缩进的代码保持一致
Python不允许混合使用制表符和空格进行缩进
最大行长度
将所有行限制为最多79个字符
应该在二元运算符之前还是之后换行
遵循数学传统通常会产生更易读的代码:
# Correct:
# easy to match operators with operands
income = (gross_wages
+ taxable_interest
+ (dividends - qualified_dividends)
- ira_deduction
- student_loan_interest)
在 Python 代码中,允许在二元运算符之前或之后断行,只要约定在本地保持一致即可。对于新代码,建议采用 Knuth 的风格。
空行
用两行空行保卫顶级函数和类定义
类内的方法定义由一个空行包围
在函数中谨慎使用空行来指示逻辑部分
源文件编码
在标准库中,默认使用UTF-8编码,非UTF-8编码仅用于测试目的。谨慎使用非ASCII字符。
导入
import os
import sys
from subprocess import Popen, PIPE
导入应按一下顺序分组(每组导入之间放置一个空格):
- 标准库导入
- 相关第三方进口
- 本地应用程序/库特定的导入
字符串引号
在Python中,单引号和双引号字符串是相同的,
当字符串包含单引号或双引号字符时,请使用另一个引号,以避免字符串中出现反斜杠。这可以提高可读性。
表达式和语句中的空格
spam(ham[1], {eggs: 2})
foo = (0,)
if x == 4: print(x, y); x, y = y, x
在切片中,冒号的作用类似于二元运算符,两侧的空格数应相等(将其视为优先级最低的运算符)。在扩展切片中,两个冒号必须应用相同的空格数。例外:当省略切片参数时,空格也省略:
# Correct:
ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
ham[lower:upper], ham[lower:upper:], ham[lower::step]
ham[lower+offset : upper+offset]
ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]
ham[lower + offset : upper + offset]
注释
代码修改时,务必确保注释保持最新。

浙公网安备 33010602011771号