教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> > 计算机软件及应用> Python开发编码规范

Python开发编码规范

上传者:田军委
|
上传时间:2015-04-24
|
次下载

Python开发编码规范

Python开发编码规范

PythonCodingRule

译稿 Python开发编码规范

1. Python开发编码规范

--- hoxide 初译 dreamingk 校对发布 040724 --- xyb 重新排版 040915

--- ZoomQuiet MoinMoin 美化 050610

用Python进行开发时的编码风格约定 原文:epes:PEP 008《Style Guide for Python Code》

1.1. 介绍

这篇文档所给出的编码约定适用于在主要的Python发布版本中组成标准库的Python 代码.请查阅相关的关于在Python的C实现中C代码风格指南的描述.

这篇文档改编自Guido最初的《Python风格指南》一文. 并从《Barry's style guide》中添加了部分内容. 在有冲突的地方,Guide的风格规则应该是符合本PEP的意图 (译注:就是当有冲突时,应以Guido风格为准) 这篇PEP也许仍然尚未完成(实际上,它可能永远不会结束).

1.2. 一致性的建议

愚蠢得使用一致性是无知的妖怪(A Foolish Consistency is the Hobgoblin of Little Minds)

呆板的坚持一致性是傻的没边了! -- Zoomq

在这篇风格指导中的一致性是重要的. 在一个项目内的一致性更重要. 在一个模块或函数内的一致性最重要.

但最重要的是:知道何时会不一致 -- 有时只是没有实施风格指导.当出现疑惑时,

1.Python开发编码规范1.介绍

2.一致性的建议3.代码的布局1.缩进

2.制表符还是空格?3.行的最大长度4.空行5.编码4.导入5.空格

1.其它建议6.注释

1.注释块2.行内注释7.文档化8.版本注记9.命名约定

1.描述:命名风格2.说明:命名约定1.应避免的名字2.模块名3.类名4.异常名5.全局变量名6.函数名

7.方法名和实例变量8.继承的设计

10.设计建议

Python开发编码规范

Python开发编码规范

折叠长行的首选方法是使用Pyhon支持的圆括号,方括号(brackets)和花括号(braces)内的行延续. 如果需要,你可以在表达式周围增加一对额外的圆括号, 但是有时使用反斜杠看起来更好.确认恰当得缩进了延续的行. Emacs的Python-mode正确得完成了这些.一些例子:Toggle line numbers

1 class Rectangle(Blob):

2

3 def __init__(self, width, height,

4 color='black', emphasis=None, highlight=0):

5 if width == 0 and height == 0 and \

color == 'red' and emphasis == 'strong' or \

highlight > 100:

6 raise ValueError, "sorry, you lose"

7 if width == 0 and height == 0 and (color == 'red' or

8 emphasis is None): 9 raise ValueError, "I don't think so"

10 Blob.__init__(self, width, height,

11 color, emphasis, highlight)

1.3.4. 空行

(Blank Lines)

用两行空行分割顶层函数和类的定义,类内方法的定义用单个空行分割. 额外的空行可被用于(保守的(sparingly))分割相关函数组成的群(groups of related functions). 在一组相关的单句中间可以省略空行.(例如.一组哑元(a set of dummy implementations)).

当空行用于分割方法(method)的定义时,在'class'行和第一个方法定义之间也要有一个空行.

在函数中使用空行时,请谨慎的用于表示一个逻辑段落(indicate logical sections).

Python接受contol-L(即^L)换页符作为空格;Emacs(和一些打印工具) 视这个字符为页面分割符,因此在你的文件中,可以用他们来为相关片段(sections)分页.

1.3.5. 编码

(Encodings)epes:(PEP 263)

Python核心发布中的代码必须始终使用ASCII或Latin-1编码(又名 ISO-8859-1). 使用ASCII的文件不必有译码cookie(coding http://wendang.chazidian.comtin-1仅当注释或文档字符串涉及作者名字需要Latin-1时才被使用; 另外使用\x转义字符是在字符串中包含非ASCII(non-ASCII)数据

Python开发编码规范

的首选方法. 作为PEP 263实现代码的测试套件的部分文件是个例外.

Python 2.4 以后内核支持 Unicode 了!

不论什么情况使用 UTF-8 吧!这是王道!

--ZoomQuiet

1.4. 导入

(Imports)

通常应该在单独的行中导入(Imports),例如:

No: import sys, os

Yes: import sys

import os

但是这样也是可以的:

from types import StringType, ListType

Imports 通常被放置在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前.Imports应该有顺序地成组安放.

1.标准库的导入(Imports )

2.相关的主包(major package)的导入(即,所有的email包在随后导入)

3.特定应用的导入(imports)你应该在每组导入之间放置一个空行.

对于内部包的导入是不推荐使用相对导入的.对所有导入都要使用包的绝对路径.

从一个包含类的模块中导入类时,通常可以写成这样:

from MyClass import MyClass

from foo.bar.YourClass import YourClass

如果这样写导致了本地名字冲突,那么就这样写

import MyClass

Python开发编码规范

import foo.bar.YourClass

即使用"MyClass.MyClass"和"foo.bar.YourClass.YourClass"

1.5. 空格

(Whitespace in Expressions and Statements)

Guido不喜欢在以下地方出现空格:

"spam( ham[ 1 ], { eggs: 2 } )". Always write this as "spam(ham[1], {eggs: 2})".

紧挨着圆括号,方括号和花括号的,如:"spam( ham[ 1 ], { eggs: 2 } )".

要始终将它写成"spam(ham[1], {eggs: 2})".

"if x == 4 : print x , y ; x , y = y , x". Always write this as "if x == 4: print x, y; x, y = y, x".

紧贴在逗号,分号或冒号前的,如:

"if x == 4 : print x , y ; x , y = y , x". 要始终将它写成 "if x == 4: print x, y; x, y = y, x".

紧贴着函数调用的参数列表前开式括号(open parenthesis )的,如"spam (1)".要始终将它写成"spam(1)". slicing, as in: "dict ['key'] = list [index]". Always write this as "dict['key'] = list[index]".

紧贴在索引或切片(slicing?下标?)开始的开式括号前的,如:

"dict ['key'] = list [index]".要始终将它写成"dict['key'] = list[index]".

在赋值(或其它)运算符周围的用于和其它并排的一个以上的空格,如:

Toggle line numbers

1 x = 1

2 y = 2

3 long_variable = 3

要始终将它写成

Toggle line numbers

1 x = 1

2 y = 2

3 long_variable = 3

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注

2019云南公务员考试常识判断40000问(五十八)
2019云南公务员考试常识判断40000问(七十一)
2019云南公务员考试常识判断40000问(六十八)
2019云南公务员考试常识判断40000问(五十九)
2019云南公务员考试常识判断40000问(八十五)
2019云南公务员考试测题库:判断推理练习题
2019云南公务员考试行测题库:言语理解练习题答案(一)
2019云南公务员考试行测题库:言语理解练习题答案
2019云南公务员考试常识判断40000问(七十九)
2019云南公务员考试常识判断40000问(六十)
2019云南公务员考试常识判断40000问(六十四)
2019云南公务员考试申论题库:互联网发展与企业社会责任
2019云南公务员考试常识判断40000问(七十三)
2019云南公务员考试常识判断40000问(八十)
2019云南公务员考试常识判断40000问(六十五)
2019云南公务员考试常识判断40000问(五十五)
2019云南公务员考试常识判断40000问(五十七)
2019云南公务员考试常识判断40000问(七十四)
2019云南公务员考试常识判断40000问(五十四)
2019云南公务员考试常识判断40000问(六十六)
2019云南公务员考试常识判断40000问(八十六)
2019云南公务员考试常识判断40000问(八十二)
2019云南公务员考试常识判断40000问(八十八)
2019云南公务员考试常识判断40000问(七十五)
2019云南公务员考试常识判断40000问(五十一)
2019云南公务员考试行测题库:资料分析练习题答案
2019云南公务员考试常识判断40000问(五十二)
2019云南公务员考试常识判断40000问(六十七)
2019云南公务员考试常识判断40000问(六十二)
2019云南公务员考试常识判断40000问(七十六)

网友关注视频

沪教版八年级下册数学练习册21.3(3)分式方程P17
第五单元 民族艺术的瑰宝_15. 多姿多彩的民族服饰_第二课时(市一等奖)(岭南版六年级上册)_T129830
北师大版数学四年级下册第三单元第四节街心广场
冀教版小学数学二年级下册第二单元《有余数除法的简单应用》
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
外研版英语七年级下册module3 unit2第二课时
8 随形想象_第一课时(二等奖)(沪教版二年级上册)_T3786594
七年级英语下册 上海牛津版 Unit9
沪教版八年级下册数学练习册一次函数复习题B组(P11)
北师大版八年级物理下册 第六章 常见的光学仪器(二)探究凸透镜成像的规律
二年级下册数学第二课
沪教版八年级下次数学练习册21.4(2)无理方程P19
沪教版牛津小学英语(深圳用) 六年级下册 Unit 7
外研版英语三起5年级下册(14版)Module3 Unit1
二年级下册数学第一课
冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣.mp4
冀教版英语五年级下册第二课课程解读
苏科版数学 八年级下册 第八章第二节 可能性的大小
精品·同步课程 历史 八年级 上册 第15集 近代科学技术与思想文化
外研版英语三起6年级下册(14版)Module3 Unit2
二次函数求实际问题中的最值_第一课时(特等奖)(冀教版九年级下册)_T144339
苏科版数学七年级下册7.2《探索平行线的性质》
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
【获奖】科粤版初三九年级化学下册第七章7.3浓稀的表示
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
北师大版数学四年级下册3.4包装
第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T3751175
第4章 幂函数、指数函数和对数函数(下)_六 指数方程和对数方程_4.7 简单的指数方程_第一课时(沪教版高一下册)_T1566237
化学九年级下册全册同步 人教版 第22集 酸和碱的中和反应(一)
冀教版小学数学二年级下册1