Effective Python

Posted marton

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Effective Python相关的知识,希望对你有一定的参考价值。

Effective Python

1.确认自己所用的Python版本

优先使用python3,抛弃python2

查看python版本信息: python --versosn

 

2.遵循PEP8风格指南

采用一致的编码风格令代码更加易读,利于多人协作

绝对应该遵守的规则

 

空格

(1)使用space来表示缩进,而不要使用tab

(2)和语法相关的每一层缩进都用4个空格来表示

(3)每行的字符不应超过79

(4)对于多行长表达式,除了首行之外的其余各行都应该在通常的缩进级别之上再加4个空格

(5)文件中的函数与类之间应该用两个空行隔开

(6)同一个类中的两个方法之间应该用一个空行隔开

(7)在使用下标获取列表元素、调用函数或给关键字参数赋值时,不要在两旁添加空格

(8)为变量赋值时,赋值符号两边各添加一个空格

 

命名

(1)函数、变量及属性应该用小写字母来拼写,各单词间用下划线连接,如bub_sort

(2)受保护的实例属性,应以单下划线开头,如_name

(3)私有的实例属性,应以双下划线开头,如__name

(4)类与异常,应以每个单词首字母大写的形式命名,如Note

(5)模块级别的常量,应全部采用大写字母拼写,单词之间用下划线连接,如ERR_CODE

(6)类中实例方法的首个参数,应该命名为self,表示该对象自身

(7)类方法的首个参数,应该命名为cls,表示该类自身

 

表达式和语句

(1)采用内联形式的否定词,不要把否定词放在整个表达式的前面,例如应该是 if a is not b 而不是if not a is b

(2)不要通过检测长度的办法,如len(list1) == 0来判断list1是否为[]或“”等空值,而是采用if not list1来判断,它会假定空值将自动评估为False

(3)检测list1是否为[1]或‘hi’等非空值,应用if list1语句会默认把非空的值判断为True

(4)不要编写单行的if语句、for循环、while循环及except复合语句,而是应该把这些语句分成多行来书写,以示清晰

(5)import语句应该总是放在文件开头

(6)引入模块的时候,总是应该使用绝对的名称,而不应该根据当前模块的路径来使用相对名称

  例如,引入bar包中的foo模块时,应该完整的写出from bar import foo,而不应该写import foo

(7)如果一定要用相对名称来编写import语句,应该采用明确的写法:from .import foo

(8)文件中的import语句应该按顺序划分成三个部分,分别表示标准模块、第三方模块以及自用模块。

  在每一个部分中,各import‘语句应该按模块的顺序来排列

以上是关于Effective Python的主要内容,如果未能解决你的问题,请参考以下文章

Effective Python 中文版

《Effective C++ 》学习笔记——条款11

《Effective C++》学习笔记

Effective C++ 条款45

[读书笔记]Effective Java 第一章

《Effective C++》读书笔记汇总