python编码规范
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()
参考
PEP8 Python 编码规范整理{:target="_blank"}
Python 编程规范{:target="_blank"}
简明Python编程规范{:target="_blank"}
python编码规范的更多相关文章
- 【转】python编码规范
http://blog.csdn.net/willhuo/article/details/49300441 决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是 ...
- python 编码规范整理
PEP8 Python 编码规范 一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不要使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号. ...
- PEP8 - Python编码规范
PEP8 - Python编码规范 PEP8 规范 官方文档:https://www.python.org/dev/peps/pep-0008/ PEP8 规范 中文翻译:http://www.cnb ...
- python经典书籍推荐:python编码规范
目录INF-qa Python 编码规范................................................................................ ...
- Python编码规范:IF中的多行条件
Python编码规范:IF中的多行条件 转载 2017年03月08日 09:40:45 http://blog.csdn.net/wsc449/article/details/60866700 有时我 ...
- 说说Python编码规范
前言 已有近两个月没有发表过文章了,前段时间外甥和女儿过来这边渡暑假,平常晚上和周末时间都陪着她们了,趁这个周末有空,再抽空再把这块拾起来. 这么久没写了,再次拿起键盘,想想,发表些什 ...
- 转--python 编码规范
编程规范 1.1. 命名规范 1.1.1. [强制] 命名不能以下划线或美元符号开始和结尾 反例: name / __name / $Object / name / name$ / Object$ 1 ...
- Python 编码规范(Google)
Python 编码规范(Google) https://blog.csdn.net/q469587851/article/details/54096093 Python 风格规范(Google) 本项 ...
- PEP8 Python 编码规范整理(转)
决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...
随机推荐
- 一个App完成入门篇(六)- 完成通讯录页面
第五章和第六章间隔时间有点长,对不起大家了.下面继续. 本节教程将要教会大家如何加载本地通讯录. 导入项目 导入通讯录 自定义js模块 发送和订阅page消息 将要学习的demo效果图如下所示 1. ...
- Mac下设置Android源代码编译环境
在Mac下编译Android最麻烦的就是设置Android的编译环境了,做完这一步基本上剩下的就是近乎傻瓜式的操作了.说起来也简单就三步,设置大小写敏感的文件系统.安装编译工具.设置文件系统同时能打开 ...
- 将nuget与VS直接集成,实现一键上传等功能
nuget是一个非常方便的包管理工具,很多团队为了开发的方便也建立了自己的包源网站(nuget.server),本篇文章是笔者在配置nuget上面的一点小体,其最终目标是要达到能够在VS里一键打包上传 ...
- 2013 duilib入门简明教程 -- 完整的自绘标题栏(8)
看了前面那么多教程,相信对duilib已有基本映像了,我们就快马加鞭,做出一个完整的自绘标题栏吧~ 看到下面这个效果图,小伙伴们是不是有点惊呆了呢~O(∩_∩)O~ dui ...
- 导入镜像文件,分区启动liunx
1:更改虚拟机配置 2:导入系统镜像 3:启动虚拟机,选择第一个选项回车 4:这里问你是否检查镜像,我们的镜像肯定没问题不需要检查,点击Skip 5:语言选择,按提示默认下一步 6:主机名也默认 7: ...
- LR中的时间戳函数web_save_timestamp_param
以前真没注意过后面看某个群有人说到这个函数一查,还真有,那么处理时间戳就简单很多了,我们经常在各种网站上看到类似于这样的时间戳 51Testing软件测试网"d bLq!uR&am ...
- python发送邮件及附件
今天给大伙说说python发送邮件,官方的多余的话自己去百度好了,还有一大堆文档说实话不到万不得已的时候一般人都不会去看,回归主题: 本人是mac如果没有按照依赖模块的请按照下面的截图安装 导入模块如 ...
- Script component 用法
在SSIS中,可以使用C#编写脚本,这是十分激动人心的事,能够使用C#代码,使得Script Component无所不能. 第一部分:组件简介Script Component 有三种类型:Source ...
- 模拟jsonp的实现
function prescript(s) { if (s.cache === undefined) { s.cache = false; } if (s.crossDomain) { s.type ...
- MySQL学习笔记一:常用显示命令
1.开启和关闭MySQL服务 WIN平台:NET START MYSQL55 :NET STOP MYSQL55 Linux平台:service mysql start : service mysql ...