教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> > 计算机软件及应用> 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月月考生物试卷

网友关注

2015年徐州物理中考模拟卷 (2)
江苏省2015年苏州市中考数学复习模拟试卷(4)(含答案)
小学体育说课稿精选集
2010年安徽省中考物理试卷及答案
七年级上册第二章 地球的面貌导学案-七年级上册导学案:2.3《海陆变迁》
2015年5月12日 中考物理模拟试卷一 命题
2009年安徽省中考物理试题
2015年中考历史(岳麓版)培优试题二
1122讲评
七年级上册第二章 地球的面貌导学案-七年级上册导学案:2.1认识地球(3)
江苏省苏州市园区2015届九年级调研语文试题(含答案)
2013北京中考化学试题及答案
人教版2015年中考英语分块总复习题 书面表达强化练习(17篇)
2015年柯桥社会思品初中毕业生学业评价适应性考试
科教版八上第七课偶像与自我第1课时
钳工学案
七年级上册第二章 地球的面貌导学案-七年级上册导学案:2.1认识地球(1)
中学教育案例
碧湖中学2014学年第二学期八年级科学阶段测试卷
2013全国各地中考物理试题分类汇编电功和电功率
期中考试家长会教案
初一年级家长会发言稿
2015年中考英语分块总复习题 情景交际(10篇)
2015年中考物理猜题押题:电与磁
2015年徐州物理中考模拟卷 (3)
重庆2015年中考化学预测卷及答案
主题班会活动设计方案
2013全国初中物理中考试卷初中物理中考试题精编知识点:力学综合
2015年山东省烟台市学业水平考试生物试题(含答案)
2015年信息技术选择题

网友关注视频

苏科版八年级数学下册7.2《统计图的选用》
七年级英语下册 上海牛津版 Unit9
沪教版牛津小学英语(深圳用) 四年级下册 Unit 4
北师大版数学 四年级下册 第三单元 第二节 小数点搬家
二年级下册数学第二课
冀教版小学数学二年级下册第二单元《租船问题》
冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
沪教版牛津小学英语(深圳用) 五年级下册 Unit 12
冀教版小学数学二年级下册1
外研版英语三起5年级下册(14版)Module3 Unit2
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
每天日常投篮练习第一天森哥打卡上脚 Nike PG 2 如何调整运球跳投手感?
【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,辽宁省
小学英语单词
人教版历史八年级下册第一课《中华人民共和国成立》
苏教版二年级下册数学《认识东、南、西、北》
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
外研版英语三起6年级下册(14版)Module3 Unit2
沪教版牛津小学英语(深圳用)五年级下册 Unit 1
外研版英语七年级下册module1unit3名词性物主代词讲解
苏科版数学 八年级下册 第八章第二节 可能性的大小
二年级下册数学第一课
沪教版牛津小学英语(深圳用) 四年级下册 Unit 7
沪教版牛津小学英语(深圳用) 四年级下册 Unit 8
飞翔英语—冀教版(三起)英语三年级下册Lesson 2 Cats and Dogs
二年级下册数学第三课 搭一搭⚖⚖
六年级英语下册上海牛津版教材讲解 U1单词
8.练习八_第一课时(特等奖)(苏教版三年级上册)_T142692
二次函数求实际问题中的最值_第一课时(特等奖)(冀教版九年级下册)_T144339
第五单元 民族艺术的瑰宝_15. 多姿多彩的民族服饰_第二课时(市一等奖)(岭南版六年级上册)_T129830