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‘语句应该按模块的顺序来排列

原文地址:https://www.cnblogs.com/marton/p/10902834.html

时间: 2024-08-08 17:18:58

Effective Python的相关文章

Effective Python 条目二:遵循PEP8风格规约

Python 增强建议#8,也被称为PEP8,是格式化Python代码的风格指引.只要符合语法,你可以随心所欲地写Python代码.然而,一致的风格使你的代码更加亲和与易于理解,及在一个大型社区中与其他Python程序员分享时促进协作.但是即使只有你自己一个人读你的代码,遵循这个风格规约将会使得以后修改起来更加容易. PEP8有一些列丰富的关于怎样去编写清晰干净的Python代码的细节.随着Python语言的演变,它将会持续更新.这是非常值得去阅读整个在线规约的(http://www.pytho

Effective Python 条目一:知道你现在用的Python是哪个版本

条目一:知道你现在用的Python是哪个版本 在这本书里,主要实例的代码是Python3.4(发布于2014年3月17日)的语法.这本书也提供一些Python2.7(发布于2010年七月3日)语法的例子去强调不同之处.我的大部分建议都可应用到流行的Python运行时库:CPython, Jython, IronPython, PyPy, etc. 很多计算机预装了多个版本的标准CPython运行时库.然而,命令行中默认的python并不清晰.python通常是python2.7的别名,但是有时候

Effective Python之编写高质量Python代码的59个有效方法

                                                     这个周末断断续续的阅读完了<Effective Python之编写高质量Python代码的59个有效方法>,感觉还不错,具有很大的指导价值.下面将以最简单的方式记录这59条建议,并在大部分建议后面加上了说明和示例,文章篇幅大,请您提前备好瓜子和啤酒! 1. 用Pythonic方式思考 第一条:确认自己使用的Python版本 (1)有两个版本的python处于活跃状态,python2和pyt

Effective Python 中文版

如题,博主正在翻译一本Python相关的书. 图为Python作者. [美]Brett Slatkin的名作. Effective Python: 59 Specific Ways to Write Better Python. 翻译版本试读链接,https://www.gitbook.com/book/guoruibiao/effective-python/details. 对此有兴趣的朋友,欢迎您的参与.联系方式可以博客栏目左侧,或者点进去翻译链接来获取. 再分享一下我老师大神的人工智能教程

Effective Python - 函数

Effective Python - 函数 14.尽量用异常来表示特殊情况,而不要返回None (1)如果令函数返回None来表示一些特殊意义,调用者很容易写出错误的代码,因为None,0,空字符串,空列表一类值,在条件表达式中会被判定为False. def divide(x, y): try: return x / y except ZeroDivisionError: return None res1 = divide(0, 3) res2 = divide(3, 0) if not res

Effective Python 小笔记之 zip 函数

环境:Python 3.5.1 CentOS 7 zip函数可以同时遍历两个迭代器. 在编写Python代码时,通常要面对很多列表,而这些列表中的对象,可能是相互关联的.如下例:     names = ['Cecilia', 'Lily', 'Maria']     length = [len(word) for word in names] 对于上例中的源列表和派生列表,相同索引处有关联关系,以此再引申出一个例子:     longest_name = None     max_length

【Effective Python】类方法、实例方法、静态方法

Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义和调用的.(PS:实例对象的权限最大.) 实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法): 调用:只能由实例对象调用. 类方法 定义:使用装饰器@classmethod.第一个参数必须是当前类对象,该参数名一般约定为“

Effective java / SQL / C# / Debugging / python

<Effective Java中文版(原书第3版)>Java之父James Gosling鼎力推荐Jolt获奖作品全新升级大量完整的示例代码和透彻的技术分析Java程序员的经典参考书针对Java 7.8.9充分展示新的Java编程语言及其类库特性,包括在其面向对象根部添加的函数编程构造PC版:http://product.china-pub.com/8054944移动版:http://m.china-pub.com/touch/touchproduct.aspx?id=8054944 <

【Python】考虑用生成器改写直接返回列表的函数

使用生成器的好处是显而易见的,可以使代码更加清晰,同时减小内存的消耗,当函数需要返回列表,把函数改写为生成器是相对容易的. 下面这两个函数返回字符串中每个单词的索引: 1 def index_words1(text): 2 result = [] 3 if text: 4 result.append(0) 5 for index, letter in enumerate(text): 6 if letter == ' ': 7 result.append(index+1) 8 return re