目录
INF-qa Python 编码规范................................................................................................................... 1
1. 介绍 ................................................................................................................................... 3
1.1. 开发背景 ............................................................................................................... 3
1.2. 语言 ....................................................................................................................... 3
1.2.1. 版本 .............................................................................................................. 3
1.3. 规范文档 ............................................................................................................... 3
2. 一致性的建议 ................................................................................................................... 3
3. 代码的布局 ....................................................................................................................... 3
3.1. 缩进 ....................................................................................................................... 3
3.2. Tab 键还是空格 .................................................................................................... 4
3.3. 行的最大长度 ....................................................................................................... 4
3.4. 空行 ....................................................................................................................... 4
3.5. 编码 ....................................................................................................................... 4
4. 导入 ................................................................................................................................... 4
5. 空格 ................................................................................................................................... 5
5.1. 其它建议 ............................................................................................................... 5
6. 注释 ................................................................................................................................... 6
6.1 注释块 ................................................................................................................... 6
6.2 行内注释 ............................................................................................................... 6
7. 文档化 ............................................................................................................................... 7
8. 版本注解 ........................................................................................................................... 7
9. 命名约定 ........................................................................................................................... 7
9.1. 描述:命名风格 ................................................................................................... 7
9.2. 说明:命名约定 ....................................................................................................... 8
9.2.1. 应避免的名字 ................................................................................................ 8
9.2.2. 模块名 ............................................................................................................ 8
9.2.3. 类名 ................................................................................................................ 8
9.2.4. 异常名 ............................................................................................................ 8
9.2.5. 全局变量名 .................................................................................................... 8
9.2.6. 函数名 ............................................................................................................ 9
9.2.7. 方法名和实例变量名 .................................................................................... 9
9.2.8. 继承 ................................................................................................................ 9
10. 设计建议 ................................................................................................................... 9
11. Demo ....................................................................................................................... 10
12. The zen of python.................................................................................................... 12

1. 介绍
1.1. 开发背景
为了提高组内自动化开发效率,避免重复开发,对组内各模块已开发的自动化 lib 库、
case 中常用的操作、以及其他工具的调用接口进行汇总,管理出 dsqa 组内自动化 case 开发
的基础库。
1.2. 语言
基础库采用 python 开发。需要调用的相关二进制工具的地方,为降低开发成本,暂采
用直接调该工具,封出 python 方法接口。
1.2.1. 版本
Python 版本较多,为避免上下版本的兼容性问题,开发采用统一版本。
Python 2.6.2/2.7.x
1.3. 规范文档
为了方便维护、他人阅读使用,整理出该编码规范文档。请大家开发时遵循本规范进行
更开发。
本文档参考自 Guido 的《Python 风格指南》一文. 并从《Barry's style guide》中添加了
部分内容,以及我的个人建议。
2. 一致性的建议
整个项目的开发中,请尽量保持一致性,尤其是一个模块或者一个函数中的一致性更为
重要。
因此存在这样的一个问题:由于不同模块的 lib 库开发人不同,编码规范也可能不同,
整合起来会显得不够“和谐”。还是希望各模块 lib 库负责人做相应的修改,尽量“和谐”。
3. 代码的布局
3.1. 缩进
众所周知,python 是通过缩进来进行代码布局的。使用 vi 可以在~/.vimrc 中配置几个空
格来代表一个 tab,从而来布局 python 函数的缩进。
3.2. Tab 键还是空格
Python 里有一句叫“以用空格为荣,以用 tab 键为耻”。但全用空格时确实很麻烦。因
此,这里不限定用 tab 键还是空格。但记住: 不可混用!
你可以选择全部使用 tab 键,这样也不会出错。
3.3. 行的最大长度
类似于函数中的行注释、函数体等,如果某一行很长,则导致换行折叠观看,很影响美
观,而且还不利于阅读。因此,对顺序排放的的大块文本(文档字符串或注释),推荐长度
限制在 72 个字节内。
推荐使用反斜杠续行。
3.4. 空行
用两行分割顶层函数和类的定义。
用一行分割类成员方法的定义。
在一个函数内使用空行时请注意谨慎使用于一个逻辑段。
3.5. 编码
在 python 2.4 之后内核已经开始支持 Unicode 了。
无论什么情况下, 使用 UTF-8


作者:熊猫烧香

链接:www.pythonheidong.com/blog/article/28/

来源:python黑洞网

python经典书籍推荐:python编码规范的更多相关文章

  1. python经典书籍推荐:Python核心编程

    作者:熊猫烧香 链接:www.pythonheidong.com/blog/article/27/ 来源:python黑洞网 对<Python核心编程>的褒奖 “ The long-awa ...

  2. python经典书籍:Python编程实战 运用设计模式、并发和程序库创建高质量程序

    Python编程实战主要关注了四个方面 即:优雅编码设计模式.通过并发和编译后的Python(Cython)使处理速度更快.高层联网和图像.书中展示了在Python中已经过验证有用的设计模式,用专家级 ...

  3. MAC Objective-C 开发经典书籍推荐

    MAC Objective-C 开发经典书籍推荐 闻道有先后,术业有专攻,这句话放到计算机科学领域的理解可能每个人都会不同. 有些人选择一个操作系统,一个体系的编程语言,作一个领域的开发. 有些人选择 ...

  4. Linux好书、经典书籍推荐

    Linux好书.经典书籍推荐 思想篇 <Linux/Unix设计思想> 图书将Unix与Linux的原理有效地结合起来,总结了Unix/Linux软件开发中的原则.在保留了第1版中Unix ...

  5. Linux网络编程经典书籍推荐

    UNIX环境高级编程<高级unix环境编程><unix网络编程><深入理解计算机系统>比较好 =====================Linux网络编程经典书籍推 ...

  6. Python + OpenCV2 系列:3 - python 字符串,类,编码规范

    首先,强烈推荐<<简明 Python 教程>> Swaroop, C. H. 著 沈洁元 译 其实,这本书里已经把python的最基本的用法,编码等等介绍的很好,这里把我用到的 ...

  7. Python 学习书籍推荐

    谁会成为AI 和大数据时代的第一开发语言? 这本已是一个不需要争论的问题.如果说三年前,Matlab.Scala.R.Java 和 Python还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明 ...

  8. python经典书籍必看:流畅的Python

    作者:熊猫烧香 链接:www.pythonheidong.com/blog/article/26/ 来源:python黑洞网 目标读者 本书的目标读者是那些正在使用 Python,又想熟悉 Pytho ...

  9. Python学习书籍推荐 中英对照

    Learn Python The Hard Way 笨办法学 python A Byte of Python 简明Python教程 初学者 英文版 Learning Python, 3rd Editi ...

随机推荐

  1. eclipse安装Activiti

    一. eclipse自己下载 打开eclipse软件,然后点击菜单栏的help选项,选择install New Software,示例如下: 出现如下对话框: 点击添加[Add]按钮,出现如下对话框 ...

  2. AutoMapper入门使用

    AutoMapper入门使用 在应用开发的过程中,首先要了解整个系统中各个系统的组件的作用,然后了解系统的工作流(workflow),最后需要梳理一遍数据流(dataflow),而在整理数据流的过程中 ...

  3. kotlin电商学习记录,好久没来逛逛了

    好久没来,一直做毕业设计,用kotlin写一个基于以图搜图的购物app,现在又赶上实习,内容多,时间少,不过前途光明并由贵人指点.加油 kotlin电商学习记录 技术选型 视图层 kotlin-and ...

  4. 深入理解JVM(4)——对象的创建和访问

    1.对象的创建 在语言层面上,创建对象(例如克隆,反序列化)通常仅仅是一个new关键字而已. 在虚拟机中,对象(文中讨论的对象限于普通 Java 对象,不包括数组和 Class 对象等)的创建过程如下 ...

  5. PKUWC2019爆0记

    PKUWC2019爆0记 访问量该骗的还是要骗. 1.20 坐了一天的高铁到jz了,热的一批 1.21 上午开营仪式 下午day1 打开发现有个地主斗 然后开T1 出题人你™搞笑吧放一道sb都能切的题 ...

  6. Lightning Conductor 洛谷P3515 决策单调性优化DP

    遇见的第一道决策单调性优化DP,虽然看了题解,但是新技能√,很开森. 先%FlashHu大佬,反正我是看了他的题解和精美的配图才明白的,%%%巨佬. 废话不多说,看题: 题目大意 已知一个长度为n的序 ...

  7. 微信小程序之 3d轮播(swiper来实现)

    以前写过一篇3d轮播,就是这篇,使用的方法比较笨拙,而且代码不简洁.这次发现swiper也能实现同样的效果.故记录一下. 先看看效果: wxml: <swiper previous-margin ...

  8. CMDB服务器管理系统【s5day90】:API构造可插拔式插件逻辑

    1.服务器端目录结构: 1.__init__.py from django.conf import settings from repository import models import impo ...

  9. latex beamer 添加页码

    导言中加 \setbeamertemplate{footline}[frame number]

  10. [物理学与PDEs]第4章第2节 反应流体力学方程组 2.4 反应流体力学方程组的数学结构

    1.  粘性热传导反应流体力学方程组是拟线性对称双曲 - 抛物耦合组. 2.  理想反应流体力学方程组是一阶拟线性对称双曲组 (取 ${\bf u},p,S,Z$ 为未知函数). 3.  右端项具有间 ...