0、前言

本文是阅读《Python Coding Rule》之后总结的最为精华及简单的编码规范,根据每个人不同喜好有些地方会有不同的选择,我只是做了对自己来说最简单易行的选择,仅供大家参考。

1、重要原则

a.保持风格的一致性很重要,但最重要的是:知道何时不一致
b.打破一条既定规则的两个好理由:
c.当应用规则会导致代码可读性下降(可读性赛高)
d.为了和周围代码保持一致而打破规则(历史遗留)

2、最简规范

a.只使用空格缩进
b.使用UTF-8编码
c.每行只写一条语句
d.使用行末反斜杠折叠长行,限制每行最大79字符
e.导入包:每行唯一、从大到小、绝对路径
f.类内方法空1行分隔,类外空2行分隔
g.运算符除 * 外,两边空1格分隔,函数参数=周围不用空格
h.除类名使用驼峰法以外,其他模块、函数、方法、变量均使用全小写+下划线
i.1个前导下划线表示半公开,2个前导下划线表示私有,与保留字区分使用单个后置下划线
j.开发时使用中文注释,发布时再写英文文档

3、详细规范

a.全文通用
b.只使用空格缩进,4个空格表示1个缩进层次
c.每行长度限制在79字符内,使用行末反斜杠折叠长行
d.使用UTF-8编码
e.每行只写一条语句

4、代码命名

一行只import一个包,Imports的顺序为:标准库、相关主包、特定应用,每组导入之间放置1行空行,所有导入使用包的绝对路径。

分割顶层函数和类的定义使用2行空行,分割类内方法定义使用1行空行,class行与第一个方法定义之间要有1行空行。

整体使用英文书写方式来使用空格,即仅在逗号、分号后面添加1个空格,其他任何符号如圆括号、方括号、花括号等都不用空格把符号与字符分开,写在一起表示一个整体;运算符除 * 号以外,其他符号两边都各用1个空格分隔;函数参数=号周围不用空格。

模块名:不含下划线、简短、全小写;

类名、异常名:首字母大写单词串的驼峰法;

函数名、全局变量名、方法名、实例变量:全小写,加下划线增加可读性;

一个前导下划线仅用于不想被导入的全局变量(还有内部函数和类)前加一个下划线)、不打算作为类的公共接口的内部方法和实例变量;

两个前导下划线以表示类私有的名字,只用来避免与类(为可以子类化所设计)中的属性发生名字冲突。

私有属性必须有两个前导下划线,无后置下划线;

非公有属性必须有一个前导下划线,无后置下划线。

公共属性没有前导和后置下划线,除非它们与保留字冲突,此情况下,单个后置下划线比前置或混乱的拼写要好,例如:class_优于klass。

5、编写技巧

与None之类的单值比较,永远用:'is'或'is not'来做:if x is not None

在模块和包内定义基异常类(base exception class)

使用字符串方法(methods)代替字符串模块。

在检查前缀或后缀时避免对字符串进行切片,用startswith()和endswith()代替,如:No: if foo[:3] == 'bar':Yes: if foo.startswith('bar'):

只用isinstance()进行对象类型的比较,如:No: if type(obj) is type(1):Yes: if isinstance(obj, int)

判断True或False不要用 ==,如:No: if greeting == True:Yes: if greeting:

6、注释

开发时,注释全部用中文来写,当要发布脚本工具时,再写英文文档。

注释应该是是完整的句子(短语也可),首字母大写;如果注释很短,省略末尾句号;注释块由一个or多个完整句子构成的段落组成,则每个句子使用句子结尾;句末句号后使用两个空格。

注释块每行以#和一个空格开始,并且跟随注释的代码具有相同的缩进层次,注释块上下方有一空行包围。

谨慎使用行内注释,至少使用两个空格与语句分开。

使用 pydoc; epydoc; Doxgen 等文档化工具,为所有公共模块、函数、类和方法边写文档字符串,文档字符串对非公开的方法不是必要的,但你应该有一个描述这个方法做什么的注释,这个注释应该在"def"这行后。

多行文档字符串结尾的""" 应该单独成行。

版本注记:定义一个变量__version__ = "$Revision: 1.4 $"

Stay hungry. Stay foolish.

本文由马哥教育Python学员提供支持。

转载于:https://blog.51cto.com/12592106/2117396

Python最简编码规范相关推荐

  1. Python的基本编码规范

    编码风格 错误认知 这很浪费时间 我是个艺术家 所有人都能穿的鞋不会合任何人的脚 我善长制定编码规范 正确认知 促进团队合作 减少bug处理 提高可读性,降低维护成本 有助于代码审查 养成习惯,有助于 ...

  2. 【Python】Python3编码规范

    Python核心发行代码里面优先使用ASCII码或Latin-1编码.3.0后UTF-8编码优先于Latin-1. 一 .空格与缩进: 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂 ...

  3. Python 常用 PEP8 编码规范和建议

    目录 目录 代码布局 缩进 最大行宽 空行 模块导入 字符串 表达式和语句中的空格 注释 命名规则 编程建议 代码布局 缩进 每级缩进用4个空格. 括号中使用垂直隐式缩进或使用悬挂缩进. EXAMPL ...

  4. python 代码格式规范脚本_Python编码规范

    Python自动化测试代码编码规范 一.适用范围: 本规则基础为Python标准PEP8,在此基础上加了我司测试部编码规范,适用于测试部所有Python脚本编写是采用的规则. 二.编码: 所有的 Py ...

  5. 【Python从入门到精通】(三)Python的编码规范,标识符知多少?

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 这是Pyhon系列文章的第三篇,本文主要介绍Python程序的编码规范. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎踊跃 ...

  6. 新人融入团队的必备python技巧,python 编码规范,滚雪球学Python第4季12篇

    python 是非常灵活的语言,所以不同的人编写出的代码差异化会很大,正因如此,所以需要一些基本规范,大家都去遵守,这样才能在多人协作开发中保持一致性. 本文就为大家梳理一下 python 行业里面达 ...

  7. python编码规范总结、python编码转换

    python编码规范总结.python编码转换 所有的 Python 脚本文件都应在文件头标上 #-*- coding:utf8 -*- .设置编辑器,默认保存为 utf8 格式. 编码 Python ...

  8. 2400字整理Python编码规范,肝了一晚上~

    2400字整理Python编码规范,肝了一晚上~ 对任何一门语言来说,学习编码规范都是第一要务,它制定了"游戏规则",约束了我们的行动,我们只有在这个规则内编码才能被正确执行.想要 ...

  9. google python代码规范_如何用好python编码规范,写一手漂亮的代码

    前一段时间在编写python 代码的时候编辑器中一直在提示规范问题,因为强迫症的原因,我决定遵循python 的编码规范去编码,然后把需要注意的点记录下来, 帮助自己和大家一起成长. 这是我的main ...

最新文章

  1. ROS、realsense开发常用命令汇总
  2. 蓝桥杯真题 a组 java_2014蓝桥杯决赛A组第5题(java)
  3. Linux查看CPU、内存、IO占用高的进程
  4. 从 6 篇顶会论文看「知识图谱」领域最新研究进展 | 解读 代码
  5. UE4入门学习3:GamePlay框架
  6. RowTime field should not be null, please convert it to a non-null long value.
  7. CF16A Flag
  8. oracle存储过程入门之hello world
  9. Matlab条形图bar横坐标间距设置
  10. 阿里云cenos 6.5 模板上安装 docker
  11. JavaScript深入之执行上下文栈 1
  12. 本科毕业论文多久能写完 计算机,论文初稿几天可以写完-你觉得十天时间能不能写完一篇本科毕业论文?为什么?...
  13. 2022哈工大计算机系统大作业
  14. a-btest 数据挖掘_挖掘新的垂直鼠标-帮助我的腕管
  15. 贪心算法之汽车加油问题
  16. node.js入门_Node.js入门
  17. Oracle | ORA-03135: connection lost contact.
  18. 关于U盘装系统的那点破事儿---No bootable device found
  19. Markdown语法学习
  20. PCB走线和过孔通流能力的标准、影响因素及其计算软件

热门文章

  1. 为提高能量利用效率,大脑会对感官进行预测
  2. 梅宏院士:操作系统变迁有20年周期律,泛在计算是一片新蓝海
  3. 浙大绘制首个地球微生物“社会关系”网络
  4. 一文读懂5G:颠覆生活资费天价?
  5. 谷歌人工智能野心:从“下围棋”开始走向商用赚钱
  6. 浙江将建设超级高速公路,全面支持自动驾驶
  7. 我是 Redis,MySQL 大哥被我害惨了!
  8. Azure Arc 正式商用、Power Platform+GitHub 世纪牵手,一文看懂 Ignite 2020
  9. 八大操作系统掌门人齐聚 1024 程序员节,千年岳麓见证开源新时代
  10. 自制操作系统Antz day08——实现内核 (中) 扩展内核