欢迎光临散文网 会员登陆 & 注册

Python代码编写规范——PEP 8

2023-06-01 23:28 作者:小刘0410  | 我要投稿

 

个人学习记录,若有侵权,请联系删除。

一、代码布局

1、分号

不要在行尾加分号,也不要用分号将两条命令放在同一行

2、缩进

每级缩进使用四个空格(不要使用tab)

推荐写法

不推荐写法

(1)续行:续行应与其包裹元素对齐

①推荐写法

②不推荐写法

(2)括号:右括号(小括号、中括号、花括号)可以放在最后一行第一个非空字符的正下方/放在最后以行下方的开头

①推荐写法一

②推荐写法二

(3)多行if

推荐写法

3、行长度

(1)所有行限制的最大字符数为79

(2)较少结构化限制的长文本流(文档字符或注释),每行最大字符数限制在72

注:可以通过将括号中的表达式换行来将长行折断成多行。

①推荐写法一

②推荐写法二

4、空行

(1)顶层函数和类的定义,前后用两个空行隔开

(2)类里面的方法定义用一个空行隔开

5、空格

(1)括号内不要有空格

(2)逗号,分号,冒号前不加空格,在后面加空格(除行尾外)

(3)在二元操作符两边都加上一个空格,如赋值(=),比较(==, <, >, !=, <>, <=, >=, in, not in, is, isnot),布尔(and, or, not)

(4)当“=”用于指示关键字参数或默认参数值时,不要在其两侧使用空格

注:当将参数注释与默认值结合使用时,在“=”两侧使用空格

(5)切片参数被忽略时,空格被忽略

二、注释

1、行内注释

行内注释是和语句在同一行,至少用两个空格和语句分开。行内注释不是必需的

2、文档字符串

为所有公共模块、函数、类和方法书写文档字符串。

注:多行文档字符串时,注意结尾的"""应该单独成行;单行时结尾的"""在同一行

(1)函数和方法

标题行(如Args、Returns)以冒号结尾,除标题行外,节的其他内容应被缩进

  • Args

列出每个参数的名字,并在名字后使用一个冒号和一个空格,分隔对该参数的描述(包括所需的类型和含义)。如果一个函数接受*args(可变长度参数列表)或**kwargs(任意关键字参数), 应该详细列出**args和**kwargs。如果描述太长超过了单行79字符,使用2或4个空格的悬挂缩进。

  • Rerturns/Yields(Yields用于生成器)

描述返回值的类型和语义。如果函数返回None,这一部分可以省略。

  • Raises

列出与接口有关的所有异常

(2)类

类应该在其定义下有一个用于描述该类的文档字符串。如果类中有公共属性,那么文档中应该有一个属性(Attributes)段,并且应该遵守和函数参数相同的格式。

3、TODO注释

为临时代码使用TODO注释;TODO注释应该在所有开头处包含"TODO"字符串,紧跟着是用括号括起来的名字,email地址或其他标识符,然后是一个可选的冒号。接着必须有一行注释,解释要做什么。

三、字符串

1、避免在循环中用+和+=操作符来累加字符串

由于字符串不可变的,这样做会创建不必要的临时对象,并且导致二次方而不是线性的运行时间。可以就每个子串加入列表,然后在循环结束后用.join连接列表。

2、在同一个文件中, 保持使用字符串引号的一致性. 使用单引号'或者双引号"之一用以引用字符串, 并在同一文件中沿用. 在字符串内可以使用另外一种引号, 以避免在字符串中使用. 

3、为多行字符串使用三重双引号"""而非三重单引号'''. 当且仅当项目中使用单引号'来引用字符串时, 才可能会使用三重'''为非文档字符串的多行字符串来标识引用. 文档字符串必须使用三重双引号""".

四、导入格式

导入应该放在文件顶部,位于模块注释和文档字符串之后,模块全局变量和常量之前。导入应该按照从最通用到最不通用的顺序分组(各组的导入之间要有空行):

①标准库导入

②第三方库导入

③应用程序指定导入

五、命名

1、应该避免的名称

(1)单字符名称,除了计数器和迭代器(例如i)

(2)包/模块名中的连字符(-)(例如study-id)

(3)双下划线开头并结尾的名称(Python保留,例如__init__)

2、命名约定

(1)所谓“内部(Internal)”表示仅模块内可用,或者在类内是保护或私有的

(2)用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含)

(3)用双下划线(__)开头的实例变量或方法表示类内私有

(4)将相关的类和顶级函数放在同一个模块里

(5)对类名使用大写字母开头的单词(如CapWords, 即Pascal风格), 但是模块名应该用小写加下划线的方式(如lower_with_under.py)

3、Python之父Guido推荐的规范



Python代码编写规范——PEP 8的评论 (共 条)

分享到微博请遵守国家法律