python编码规范


文件及目录规范

  • 文件保存为 utf-8 格式。

  • 程序首行必须为编码声明:# -*- coding:utf-8 -*-

  • 文件名全部小写。


代码风格

空格

  • 设置用空格符替换TAB符。

  • 代码缩进为4个空格符。

  • 仅在运算符前后(如+,-,=,==)各加一个空格,不要在用于指定关键字参数或默认参数值的'='号周围使用空格,其他语句和表达式中都不要加空格。

分行

  • 程序头部声明和import之间、import和程序之间用一个空行分隔。

  • 类定义之间以及程序与if __name__ =="__main__":空两行。类定义行与成员函数之间以及函数定义之间空一行。

  • 每个语句独立一行,不要使用;在一行内放置多条语句。

  • 每行字符数控制在72以内,如果超长可以使用反斜杠(\)折行。

  • 如果语句包含()、[]、{},可使用括号内行延续,换行后加两个缩进以便于阅读。

  • 换行位置应在元素分隔符或操作符前。

代码约定

  • import紧跟在编码声明和程序功能注释之后, import顺序应该是先系统标准包,其次第三方包,最后是自定义包。

命名规则

命名方法

  • Lowercase(小写)

  • lower_case_with_underscores(有下划线的小写)

  • UPPERCASE(大写)

  • UPPER_CASE_WITH_UNDERSCORES(有下划线的大写)

  • CapitalizedWords (或 CapWords,CamelCase这样命名是因为可从字母的大小写分出单词。这有时也被当作StudlyCaps。)

  • mixedCase (与CapitalizedWords的不同在于首字母小写!)

命名约定

  • 单字符名称仅用于计数器和迭代器。

  • 双下划线开头并结尾的名称为系统保留命名法,编程中禁止使用。

  • 包名和模块名:不含下划线全小写。

  • 类名:使用CapWords约定。内部使用的类外加单下划线前缀。

  • 函数名和变量名:使用mixedCase约定。

  • 常量:使用有下划线的大写约定。

  • protected变量或函数:在mixedCase约定的基础上加单下划线前缀。

  • private变量或函数:在mixedCase约定的基础上加双下划线前缀。

  • 如果命名与系统名冲突,则加单下划线后缀。

应避免的命名

  • 单字符名称, 除了计数器和迭代器。

  • 包/模块名中的连字符(-)。

  • 双下划线开头并结尾的名称。


注释规范

注释原则

  • 不要描述代码本身。

  • 功能修改后注释一定要第一时间修改。

文档字符串

文档字符串是python特有的注释形式。通常做为程序文件、包、模块、类、函数的注释方式,可以通过对象的__doc__成员被自动提取, 并且被pydoc所用.

程序文件、包、模块注释

位置在import之前,上下各空两行。

'''<程序名>

<功能说明>

version:<版本号>

author:<开发者姓名>

createdate:

modifydate:

'''

函数注释

位置紧跟函数定义之后。

'''<功能说明>

args:<参数名>:<说明>

... ...

returns:<返回值说明>

raises:<可能引起的异常说明>

'''

类注释

在函数注释的基础上加入attributes(属性)

块注释

通常用于说明程序段功能、技巧性编码等。位置在需说明的代码段之前。

行注释

作用同块注释,位置在需说明的代码后两个单位缩进处。


编码指导

  • 类如果不继承自其他类,则应显式继承object。

  • 尽量使用%格式化方法组织字符串,不要使用字串拼接。如:"%s hello!" % (userName)

  • 尽可能使用with语句处理文件或socket句柄,以确保使用完后被关闭。

  • 尽可能使用is、is not取代== 。

  • 主程序应放在main()函数中,在程序文件的末尾通过如下形式调用。


if __name__ =='__main__': main()

参考

python编码规范的更多相关文章

  1. 【转】python编码规范

    http://blog.csdn.net/willhuo/article/details/49300441 决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是 ...

  2. python 编码规范整理

    PEP8 Python 编码规范 一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不要使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号. ...

  3. PEP8 - Python编码规范

    PEP8 - Python编码规范 PEP8 规范 官方文档:https://www.python.org/dev/peps/pep-0008/ PEP8 规范 中文翻译:http://www.cnb ...

  4. python经典书籍推荐:python编码规范

    目录INF-qa Python 编码规范................................................................................ ...

  5. Python编码规范:IF中的多行条件

    Python编码规范:IF中的多行条件 转载 2017年03月08日 09:40:45 http://blog.csdn.net/wsc449/article/details/60866700 有时我 ...

  6. 说说Python编码规范

    前言 已有近两个月没有发表过文章了,前段时间外甥和女儿过来这边渡暑假,平常晚上和周末时间都陪着她们了,趁这个周末有空,再抽空再把这块拾起来.         这么久没写了,再次拿起键盘,想想,发表些什 ...

  7. 转--python 编码规范

    编程规范 1.1. 命名规范 1.1.1. [强制] 命名不能以下划线或美元符号开始和结尾 反例: name / __name / $Object / name / name$ / Object$ 1 ...

  8. Python 编码规范(Google)

    Python 编码规范(Google) https://blog.csdn.net/q469587851/article/details/54096093 Python 风格规范(Google) 本项 ...

  9. PEP8 Python 编码规范整理(转)

    决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...

随机推荐

  1. docfx组件介绍--MarkdownLite

    在docfx中,最重要的就是生成文档,把markdown文件(gfm语法)转换成html. 为了这一步,我们找了N个.net开源项目,发现要么是common markdown的,要么不容易扩展,没有一 ...

  2. ASP.NET MVC 路由(四)

    ASP.NET MVC路由(四) 前言 在前面的篇幅中我们讲解路由系统在MVC中的运行过程以及粗略的原理,想必看过前面篇幅的朋友应该对路由有个概念性的了解了,本篇来讲解区域,在读完本篇后不会肯定的让你 ...

  3. Qt5中的信号槽

    Qt4中的信号槽 Qt4中的信号槽是通过SIGNAL,SLOT两个宏,将参数转换成字符串.Qt编译前,会从源码的头文件中提取由signal和slot声明的信号和槽的函数, 将其组成一张信号和槽对应的字 ...

  4. Fiddler调式使用知多少(一)深入研究

    Fiddler调式使用(一)深入研究 阅读目录 Fiddler的基本概念 如何安装Fiddler 了解下Fiddler用户界面 理解不同图标和颜色的含义 web session的常用的快捷键 了解we ...

  5. 使用Java纯代码实现MySQL的连接

      建立数据库 1. 点击连接-->MySQL: 输入连接名 . 主机名/IP地址 .端口 .用户名.密码(没有密码就省略),然后点击确定,建立的表格是灰色表示关闭状态,双击开启 2. 重新创建 ...

  6. Linux核心源码阅读方法

    首次阅读Linux4.0.5内核源代码时,一脸茫然,它的代码不仅复杂,而且庞大,找不到从哪里开始阅读. 通常Linux会有以下目录 arch 子目录包括所有和体系结构相关的核心代码.它还有更深的子目录 ...

  7. 用Mindjet MindManager 15 打开文件后停止响应的解决方法

    这个是因为文件里面有很多规格不统一的注释(那个像小本子的图标[里面就是注释部分]),默认编码是utf-8的,如果不一样的话就会出现这个问题.网上大多数都是让咱们删掉注释再打开 弱弱的问一下,如果我都把 ...

  8. iTween 动画类型

    iTween 动画类型 http://robertpenner.com/easing/easing_demo.html 使用范例 http://www.xuanyusong.com/archives/ ...

  9. Textbox.Visible=False隐藏方式导致的问题

    今天公司的正式环境有个功能不好使,但是测试环境没有问题,经过和同事的研讨,发现应该是我在写代码的时候把Textbox的visible属性设置为false导致的. 当时的需求是需要在发邮件的时候加上“相 ...

  10. Android 裁剪图片为圆形图片

    转自http://blog.csdn.net/kkmike999/article/details/16359713 /** * 转换图片成圆形 * * @param bitmap * 传入Bitmap ...