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
精品推荐
- 2016-2017学年高一语文人教版必修一+模块学业水平检测试题(含答案)
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
分类导航
- 互联网
- 电脑基础知识
- 计算机软件及应用
- 计算机硬件及网络
- 计算机应用/办公自动化
- .NET
- 数据结构与算法
- Java
- SEO
- C/C++资料
- linux/Unix相关
- 手机开发
- UML理论/建模
- 并行计算/云计算
- 嵌入式开发
- windows相关
- 软件工程
- 管理信息系统
- 开发文档
- 图形图像
- 网络与通信
- 网络信息安全
- 电子支付
- Labview
- matlab
- 网络资源
- Python
- Delphi/Perl
- 评测
- Flash/Flex
- CSS/Script
- 计算机原理
- PHP资料
- 数据挖掘与模式识别
- Web服务
- 数据库
- Visual Basic
- 电子商务
- 服务器
- 搜索引擎优化
- 存储
- 架构
- 行业软件
- 人工智能
- 计算机辅助设计
- 多媒体
- 软件测试
- 计算机硬件与维护
- 网站策划/UE
- 网页设计/UI
- 网吧管理