python PEP 8 编码风格指南

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 异常捕获等中只有⼀⾏代码,也不要将代码和
    if 、 for 、 except 等写在⼀起,分开写才会让代码更清晰。
  4. import 语句总是放在⽂件开头的地⽅。
  5. 引⼊模块的时候, from math import sqrt ⽐ import math 更好。
  6. 如果有多个 import 语句,应该将其分为三部分,从上到下分别是Python标准模块、第三⽅模块
    和⾃定义模块,每个部分内部应该按照模块名称的字⺟表顺序来排列。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值