python空格使⽤规范_Python最简编码规范
原标题:Python最简编码规范
来源:机器学习算法与Python学习
ID:guodongwei1991
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、注释
python中文文档开发时,注释全部⽤中⽂来写,当要发布脚本⼯具时,再写英⽂⽂档。
注释应该是是完整的句⼦(短语也可),⾸字母⼤写;如果注释很短,省略末尾句号;注释块由⼀个or多个完整句⼦构成的段落组成,则每个句⼦使⽤句⼦结尾;句末句号后使⽤两个空格。
注释块每⾏以#和⼀个空格开始,并且跟随注释的代码具有相同的缩进层次,注释块上下⽅有⼀空⾏包围。
谨慎使⽤⾏内注释,⾄少使⽤两个空格与语句分开。
使⽤ pydoc; epydoc; Doxgen 等⽂档化⼯具,为所有公共模块、函数、类和⽅法边写⽂档字符串,⽂档字符串对⾮公开的⽅法不是必要的,但你应该有⼀个描述这个⽅法做什么的注释,这个注释应该在"def"这⾏后。
多⾏⽂档字符串结尾的""" 应该单独成⾏。
版本注记:定义⼀个变量__version__ = "$Revision: 1.4 $"
Stay hungry. Stay foolish.
⽂章链接:wwwblogs/Chayeen/p/8884776.html
Python全栈+⾃动化+爬⾍+数据分析+Go区块链+AI全能课程2019年06⽉24⽇即将开课中,120天冲击Linux运维年薪30万,改变速约~~~~返回搜狐,查看更多
责任编辑:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论