PEP 8风格指南

PEP是Python Enhancement Proposal的缩写,通常翻译为“Python增强提案”。每个PEP都是一份为Python社区提供的指导Python往更好的方向发展的技术文档,其中的第8号增强提案(PEP 8)是针对Python语言编订的代码风格指南。尽管我们可以在保证语法没有问题的前提下随意书写Python代码,但是在实际开发中,采用一致的风格书写出可读性强的代码是每个专业的程序员应该做到的事情,也是每个公司的编程规范中会提出的要求,这些在多人协作开发一个项目(团队开发)的时候显得尤为重要。我们可以从Python官方网站的PEP 8链接中找到该文档,下面我们对该文档的关键部分做一个简单的总结。

空格的使用

  1. 使用空格来表示缩进而不要用制表符(Tab)。这一点对习惯了其他编程语言的人来说简直觉得不可理喻,因为绝大多数的程序员都会用Tab来表示缩进,但是要知道Python并没有像C/C++或Java那样的用花括号来构造一个代码块的语法,在Python中分支和循环结构都使用缩进来表示哪些代码属于同一个级别,鉴于此Python代码对缩进以及缩进宽度的依赖比其他很多语言都强得多。在不同的编辑器中,Tab的宽度可能是2、4或8个字符,甚至是其他更离谱的值,用Tab来表示缩进对Python代码来说可能是一场灾难。
  2. 和语法相关的每一层缩进都用4个空格来表示。
  3. 每行的字符数不要超过79个字符,如果表达式因太长而占据了多行,除了首行之外的其余各行都应该在正常的缩进宽度上再加上4个空格。
  4. 函数和类的定义,代码前后都要用两个空行进行分隔。
  5. 在同一个类中,各个方法之间应该用一个空行进行分隔。
  6. 二元运算符的左右两侧应该保留一个空格,而且只要一个空格就好。

标识符命名

PEP 8倡导用不同的命名风格来命名Python中不同的标识符,以便在阅读代码时能够通过标识符的名称来确定该标识符在Python中扮演了怎样的角色(在这一点上,Python自己的内置模块以及某些第三方模块都做得并不是很好)。

  1. 变量、函数和属性应该使用小写字母来拼写,如果有多个单词就使用下划线进行连接。
  2. 类中受保护的实例属性,应该以一个下划线开头。
  3. 类中私有的实例属性,应该以两个下划线开头。
  4. 类和异常的命名,应该每个单词首字母大写。
  5. 模块级别的常量,应该采用全大写字母,如果有多个单词就用下划线进行连接。
  6. 类的实例方法,应该把第一个参数命名为self以表示对象自身。
  7. 类的类方法,应该把第一个参数命名为cls以表示该类自身。

表达式和语句

在Python之禅(可以使用import this查看)中有这么一句名言:“There should be one-- and preferably only one --obvious way to do it.”,翻译成中文是“做一件事应该有而且最好只有一种确切的做法”,这句话传达的思想在PEP 8中也是无处不在的。

  1. 采用内联形式的否定词,而不要把否定词放在整个表达式的前面。例如if a is not b就比if not a is b更容易让人理解。
  2. 不要用检查长度的方式来判断字符串、列表等是否为None或者没有元素,应该用if not x这样的写法来检查它。
  3. 就算if分支、for循环、except异常捕获等中只有一行代码,也不要将代码和ifforexcept等写在一起,分开写才会让代码更清晰。
  4. import语句总是放在文件开头的地方。
  5. 引入模块的时候,from math import sqrtimport math更好。
  6. 如果有多个import语句,应该将其分为三部分,从上到下分别是Python标准模块第三方模块自定义模块,每个部分内部应该按照模块名称的字母表顺序来排列。

【干货】PEP8风格指南相关推荐

  1. PEP8 - Python 代码风格指南中英对照

    PEP8 - Python 代码风格指南中英对照 Introduction A Foolish Consistency is the Hobgoblin of Little Minds Code la ...

  2. python代码风格指南:pep8 中文翻译

    摘要 本文给出主Python版本标准库的编码约定.CPython的C代码风格参见​PEP7.本文和​PEP 257 文档字符串标准改编自Guido最初的<Python Style Guide&g ...

  3. 墙外干货:如何通过风格指南驱动模块化交互设计

    使用风格指南驱动开发是一个可在前端开发中获得大量牵引力的实践--这背后的原因也是极有道理的.开发人员将在风格指南中加入新的代码或更新现有的代码,从而有助于稍后集成到程序中的模块化的用户界面系统.但是为 ...

  4. 风格指南——Solidity中文文档(10)

    写在前面:HiBlock区块链社区成立了翻译小组,翻译区块链相关的技术文档及资料,本文为Solidity文档翻译的第十部分<风格指南>,特发布出来邀请solidity爱好者.开发者做公开的 ...

  5. PEP8风格是什么?

    PEP8 PEP是Python Enhancement Proposal的缩写,通常翻译为"Python增强提案".每个PEP都是一份为Python社区提供的指导Python往更好 ...

  6. [CoffeeScript]编码风格指南

     这份指南阐述了一些 CoffeeScript 的最佳实践和编码惯例. 这份指南是社群驱动的,非常鼓励大家来贡献内容. 请注意这还是一份正在完善的指南:仍有很多地方可以改进,有些已制定的准则也不一 ...

  7. Google内部 Python 代码风格指南(中文版)

    文末有干货 "Python高校",马上关注 真爱,请置顶或星标 这是一位大佬翻译的Google Python代码风格指南,很全面.可以作为公司的code review 标准,也可以 ...

  8. 来自 Google 的 R 语言编码风格指南

    来自 Google 的 R 语言编码风格指南 R 语言是一门主要用于统计计算和绘图的高级编程语言. 这份 R 语言编码风格指南旨在让我们的 R 代码更容易阅读.分享和检查. 以下规则系与 Google ...

  9. JavaScript编码风格指南

    首次发表在个人博客 前言 程序语言的编码风格指南对于一个长期维护的软件而言是非常重要的;好的编程风格有助于写出质量更高.错误更少.更易于 维护的程序. 团队合作需要制定一些代码规范还有利用一些工具来强 ...

最新文章

  1. 留恋 nyoj 854
  2. c语言 指针到字符串,C语言中的指针和字符串
  3. 多线程编程-工具篇-BlockingQueue
  4. $Django redis内存数据库 (知识回顾cmd切换目录)
  5. java 筛选地区语句_Java选择语句
  6. html 格式化 vim,代码格式化插件
  7. linux虚拟机调整分辨率
  8. python好东西啊
  9. 自用JavaMail实现
  10. vs code调试console程序报错--preLaunchTask“build”
  11. K3CLOUD表关联
  12. Java 信号量 Semaphore 介绍
  13. html中css层叠样式表(行内样式,内嵌式,外部式)
  14. 计算机音乐数字乐谱周杰伦,周杰伦的歌《安静》的数字乐谱是什么??
  15. MySQL排序缓冲区溢出([HY001]; error code [1038],Out of sort memory, consider increasing server sort buffer )
  16. 这种木头比钢和陶瓷更锋利,轻松切开半熟牛排,钉穿三层木板,还永不生锈 | Cell子刊...
  17. 钱多多的程序猿的2020大计划
  18. mysql学校教务系统_java servlet+mysql开发的学校官网+教务系统+图书馆系统,功能完善,供参考学习...
  19. 手机的发展史,手机未来的发展趋势
  20. 正则表达式nbsp;特殊用法

热门文章

  1. AbstractQueuedSynchronizer源码
  2. CF1228C. Primes and Multiplication(数学)
  3. flash as3笔记1
  4. LeetCode(62):不同路径
  5. 洛谷 1373 dp 小a和uim之大逃离 良心题解
  6. Oracle 创建表空间与用户
  7. [译]36 Days of Web Testing(六)
  8. 一个表格,一部分允许编辑,有公式的单元格不允许编辑
  9. 【Spring 工厂】反转控制与依赖注入、Spring工厂创建复杂对象3种方式
  10. 《恋上数据结构第1季》映射 TreeMap,HashMap,LinkedHashMap