Python编程规范
打破一条既定规则的两个理由:
- 应用这个规则将导致代码可读性下降。
- 为了和周围的代码保持一致。
编码:
- 所有的 Python 脚本文件都应在文件头标上如下标识或其兼容格式的标识:
# -*- coding:utf-8 -*-
- 设置编辑器,默认保存为utf-8格式。
缩进:
- 永远不要混用制表符和空格。
- 最流行的Python缩进方式是仅使用空格,其次是仅使用制表符。
- 使用空格缩进时默认设置为4个空格。
断行:
- 行的最大长度不得超过79字符。
- 对顺序排放的大块文本(文档字符串或注释),推荐将长度限制在72字符。
- 折叠长行的首选方式是使用 Python 支持的圆括号,方括号和花括号内的行延续。
- 可以使用反斜杠来断行,断行的位置应在操作符前,且换行后多一个缩进。
空行:
- 对函数和类用两个空行分隔,对类的方法用一个空行分隔。
- 在import不同种类的模块之间增加空行。
导入:
- 一条import语句import一个模块。
- 最好不要使用from moudle import *。
- Imports 通常被放置在文件的顶部。仅在模块注释和文档字符串之后,模块的全局变量和常量之前。
- import 的次序,先 import Python 的内置模块,再 import 第三方模块,最后 import 自己开发的项目中的其它模块。
空格:
- 在二元算术符、逻辑运算符前后加空格。
- 括号(含圆括号、方括号和花括号)前后不加空格。
- 逗号、冒号、分号前面不加空格,后面加一个空格(冒号在行尾后面不用加空格)。
- 等号用于指定参数或默认参数值时,两边不要加空格。
命名:
- 永远不要用小写字母 l ,大写字母 O ,大写字母 I 作为单字符的变量名。
- 常量名所有字母大写,用下划线连接各个单词。
- 变量名和函数名所有字母小写,用下划线连接各个单词。且变量名不应带有类型信息。
- 模块名和包名所有字母小写,简短且不含下划线。
- 类名使用首字母大写的单词串,不含下划线。
分枝和循环:
- 不要将多条语句写在同一行上。
- 多使用循环语句的 else 分句,以简化代码。
注释:
- 注释分为两种,一种是由 # 开头的“真正的”注释,另一种是文档字符串。前者表明为何选择当前实现以及这种实现的原理和难点,后者表明如何使用这个包、模块、类、函数(方法),甚至包括使用示例和单元测试。
- 坚持适当注释原则。对不存在技术难点的代码坚持不注释,对存在技术难点的代码必须注释。当代码修改时,应始终优先更新注释。
- 注释应该是完整的句子,每个句子以句号结尾。如果注释很短,则省略末尾的句号。
- 如果注释是一个短语或句子,首字母应该大写,除非它是一个以小写字母开头的标识符。
- 注释块应具有与代码相同的缩进层次。注释块中每行以’#’和一个空格开始(除非他是注释内的缩进文本)。注释块内的段落以仅含单个’#’的行分割。 注释块上下方最好有一空行包围。
- 行内注释应该至少用两个空格和语句分开,它们应该以’#’和单个空格开始。
文档字符串:
- 为所有公共模块、函数、类和方法编写文档字符串。文档字符串对非公开的方法不是必要的,但需要有一个描述这个方法做什么的注释,这个注释应该在”def”这行后。
- 多行文档字符串结尾的””” 应该单独成行。
其他:
- 对象类型的比较应该始终用isinstance()代替直接比较类型。
if isinstance(obj, int):
- 不要用 “==” 比较布尔型的值以确定是True或False,如:
if greeting == True:
应该写成:
if greeting:
Python编程规范的更多相关文章
- Python编程规范(PEP8)
Python编程规范(PEP8) 代码布局 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂直对齐,或者缩进对齐. 制表符还是空格? 永远不要将制表符与空格混合使用.Python最常用 ...
- Python 编程规范-----转载
Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...
- Python编程规范及性能优化(转载)
转载地址:http://codeweblog.com/python编程规范及性能优化/
- Python学习手册之 Python 之禅、Python 编程规范和函数参数
在上一篇文章中,我们介绍了 Python 的正则表达式使用示例,现在我们介绍 Python 之禅. Python 编程规范和函数参数.查看上一篇文章请点击:https://www.cnblogs.co ...
- Python 编程规范梳理
缘由 由于项目团队中新加入了几名攻城狮, 大家之前的背景各不相同,写出的代码也是“风格迥异”.正所谓:“无规则不成方圆”,因此需要对编程进行必要的规范. 整体的思路是:依照PEP8 Python 编码 ...
- Python 编程规范 —— TODO 注释(结合 PyCharm)
编程是代码和注释的统一: TODO 自然表示需要做而未做的一些待完成的事项,有助于事后的检索,以及对整体项目做进一步的修改迭代. # TODO(kl@gmail.com): Use a "* ...
- PEP8 Python编程规范
官方文档: https://www.python.org/dev/peps/pep-0008/ ---------------------------------------------------- ...
- PEP 8 python编程规范
一 代码编排 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格. 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点要在操作符的后边敲回车. 类和to ...
- python - 编程规范问题
软件目录结构规范alex_老男孩:为什么要设计好目录结构?“设计项目目录结构”,就和“胆码编码风格”一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 1.一类同学认为,这种个人 ...
随机推荐
- 【Unity3D】刚体与碰撞体以及is Trigger属性的意义
[Unity3D]刚体与碰撞体以及is Trigger属性的意义 刚体:个人理解就是具有物理属性(如:质量),接受物理作用(如:重力)的组件. 碰撞体:个人理解就是计算碰撞后的物理量(如:弹力). 刚 ...
- java面试题小全
面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面.抽象并不5. 打算了解全部问题,而6. 只是选择其中的 ...
- hdu 1318 Palindromes(回文词)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1318 题意分析:输入每行包含一个字符串,判断此串是否为回文串或镜像串. 表面上看这道题有些复杂,如果能 ...
- trident 序列号问题
在使用Storm的trident做流计算开发时,遇到一个诡异的问题: 我继承IPartitionedTridentSpout或者IOpaquePartitionedTridentSpout接口做事务型 ...
- ArcGIS10中matplotlib画图时的中文设置
利用GIS的数据批量生成XY的图形图像文件,可以直接使用Python.一般大家都是用matplotlib,中文设置的问题参看了许多内容,结论是对错不一,让我折腾了三天,现总结如下: 1.软件的版本.安 ...
- ASP.NET MVC强制返回XML
GlobalConfiguration.Configuration.Formatters.Remove(config.Formatters.JsonFormatter);
- Word 录制宏解决粘贴网络上文字格式错乱
本文将利用Word中的录制宏来解决 复制粘贴网络上文字格式错乱的问题. 本文宏代码取自 : 知乎 李文超,感谢他的提供. Technorati 标签: Word宏 格式修正 1 ...
- 生成HTMLTestRunner测试报告的操作步骤——Python+selenium自动化
HTMLTestRunner是Python标准库的unittest模块的一个扩展,具体操作如下 1.安装 环境:Window8 步骤:1)http://tungwaiyip.info/software ...
- 转载:Linux内核探索之路——关于书
转自http://blog.chinaunix.net/uid-20608849-id-3029223.html 在学习Linux内核代码的过程中,定会参考很多书籍以及网路资源,但是并不是所有的书籍和 ...
- CSS3属性box-shadow使用教程
CSS3的box-shadow属性可以让我们轻松实现图层阴影效果.我们来实战详解一下这个属性. 1. box-shadow属性的浏览器兼容性先来看一个这个属性的浏览器兼容性: Opera: 不知道是从 ...