Python代码编写规范

3个月前 (04-26 11:13)阅读87回复0
采编小助手
采编小助手
  • 注册排名10021
  • 经验值5
  • 级别作者
  • 主题1
  • 回复0
楼主

1. 编码

所有的 Python 脚本文件都应在文件头标上。例如,下段代码用于设置编辑器,默认保存为 utf-8 格式。

Python代码编写规范  第1张

2. 分号

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

3. 行长度

一般每行不要超过80个字符,这在PyCharm和Spyder工具里面都是有提示的,原因是过长不易阅读,并且建议不要使用反斜杠连接行。如果确有需要,可以在表达式外围增加一对额外的圆括号。

4. 括号

不可滥用括号,除非是用于实现行连接, 否则不要在返回语句或条件语句中使用括号,不过在元组两边使用括号是可以的。

5. 缩进

用4个空格来缩进代码,绝对不要按Tab键,也不要Tab键和空格键混用。对于行连接的情况,应该要么垂直对齐换行的元素,要么使用4空格的悬挂式缩进(这时第一行不应该有参数)。

6. 空行

顶级定义之间空两行,如函数或者类定义、方法定义;类定义与第一个方法之间都应该空一行。函数或方法中,某些地方要是觉得合适,就空一行。

7. 空格

按照标准的排版规范来使用标点两边的空格。括号内不要有空格,如[1],不能写成[ 1 ],不要在逗号、分号、冒号前面加空格,但应该在它们后面加(除了在行尾);参数列表、索引或切片的左括号前不应加空格;在二元操作符两边都加上一个空格,如赋值(=)、比较(==、 <、 >、 !=、< >、<=、 >=、in、not in、is、is not)、布尔(and、or、not);当“=”用于指示关键字参数或默认参数值时,不要在其两侧使用空格;不要用空格来垂直对齐多行间的标记,因为这会成为维护的负担。

8. 注释

注释分为块注释和行注释。一般最需要写注释的是代码中那些技巧性的部分。为了便于阅读或者防止忘记当时写这段代码的用意,应该当时就给它写注释。对于复杂的操作, 应该在其操作开始前写上若干行注释。对于不是一目了然的代码,应在其行尾添加注释。为了提高可读性,注释应该至少离开代码两个空格。块注释一般采用三重双引号的文档字符串的形式进行。

9. 导入格式

每个导入应该独占一行,如import os,sys 就不好,应该每个库使用一行import命令。另外,导入总应该放在文件顶部,位于模块注释和文档字符串之后,模块全局变量和常量之前。导入应该按照从最通用到最不通用的顺序分组。

(1) 标准库导入。

(2) 第三方库导入。

(3) 应用程序指定导入。

导入的分组中, 应该根据每个模块的完整包路径按字典序排序,忽略大小写。例如,下段代码就非常整齐。

import foo
from foo import bar
from foo.bar import baz
from foo.bar import Quux
from Foo import bar

10. 语句

通常每个语句应该独占一行,不过,如果测试结果与测试语句在一行放得下,也可以将它们放在同一行,但如果是if语句,则只能在没有else时才能这样做。特别地,绝不要对 try…except语句这样做,因为try和except不能放在同一行。

11. 命名

Python中应该避免的名称如单字母名称(除了计数器和迭代器)、包/模块名中的连字符(-)以及双下画线开头并结尾的名称(因为多为Python保留, 例如_ init _)。在命名时应遵守下述约定。

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

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

(3) 用双下画线“_ _”开头的实例变量或方法表示类内私有。

(4) 将相关的类和顶级函数放在同一个模块里。不像Java,没必要限制一个类一个模块。

(5) 对类名使用大写字母开头的单词(如CapWords,即Pascal风格),但是模块名应该用小写加下画线“_”的方式(如lower_with_under.py)。尽管已经有很多现存的模块使用类似于CapWords.py 这样的命名,但现在已经不鼓励这样做,因为如果模块名碰巧和类名一致,这会让人困扰。

感兴趣的话,大家可以看一下Python 之父Guido推荐的命名规范。


本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/3434.html

0
收集分享互联网Python相关的学习教程
回帖

Python代码编写规范 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息