Effective Python:编写高质量Python代码的59个有效方法
基本信息
- 原书名:Effective Python:59 Specific Ways to Write Better Python
- 作者: (美)布雷特·斯拉特金(Brett Slatkin)
- 译者: 爱飞翔
- 丛书名: EFFECTIVE系列丛书
- 出版社:机械工业出版社
- ISBN:9787111523550
- 上架时间:2016-1-14
- 出版日期:2016 年1月
- 开本:16开
- 页码:210
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > Python

编辑推荐
Google高级软件工程师Brett Slatkin融合自己多年Python开发实战经验,深入探讨编写高质量Python代码的技巧、禁忌和最佳实践
涵盖Python3.x和Python2.x主要应用领域,汇聚59条优秀实践原则、开发技巧和便捷方案,包含大量实用范例代码
内容简介
计算机书籍
用Python编写程序,是相当容易的,所以这门语
言非常流行。但若想掌握Python所特有的优势、魅力
和表达能力,则相当困难,而且语言中还有很多隐藏
的陷阱,容易令开发者犯错。
《Effective Python(编写高质量Python代码的
59个有效方法)》可以帮你掌握真正的Pythonic编程
方式,令你能够完全发挥出Python语言的强大功能,
并写出健壮而高效的代码。Scott Meyer's在畅销书
《Effective C++》中开创了一种以使用场景为主导
的精练教学方式,本书作者布雷特·斯拉特金就以这
种方式汇聚了59条**的实践原则、开发技巧和便捷
方案,并以实用的代码范例来解释它们。
斯拉特根据自己在Google公司多年开发Python基
础架构所积累的经验,揭示Python语言中一些鲜为人
知的微妙特性,并给出了能够改善代码功能及运行效
率的习惯用法。通过本书,你能够了解到解决关键编
程任务所用的*佳方式,并学会编写易于理解、便于
维护且利于改进的代码。
作译者
Brett Slatkin,Gooqle公司高级软件工程师。他是Google消费者调查项目的工程主管及联合创始人,曾从事Google App Engine的Python基础架构工作,并利用Python来管理众多的Google服务器。Slatkin也是PubSubHubbub协议的联合创始人,还用Python为GoogIe实现了针对该协议的系统。他拥有哥伦比亚大学计算机工程专业学士学位。
目录
译 者 序
前 言
致 谢
第1章 用Pythonic方式来思考
第1条:确认自己所用的Python版本
第2条:遵循PEP 8风格指南
第3条:了解bytes、str与unicode的区别
第4条:用辅助函数来取代复杂的表达式
第5条:了解切割序列的办法
第6条:在单次切片操作内,不要同时指定start、end和stride
第7条:用列表推导来取代map和filter
第8条:不要使用含有两个以上表达式的列表推导
第9条:用生成器表达式来改写数据量较大的列表推导
第10条:尽量用enumerate取代range
第11条:用zip函数同时遍历两个迭代器
第12条:不要在for和while循环后面写else块
第13条:合理利用try/except/else/finally结构中的每个代码块
第2章 函数
第14条:尽量用异常来表示特殊情况,而不要返回None
译者序
因此,从上述宏观层面来看,Effective式的心得手册,无论是对初学者还是熟练者,都有较大意义。本书自然也不例外。对于初学者来说,书中展示了该语言的大体轮廓,使我们能够知道Python的强项和弱项。在知道了这些特性之后,开发者就可以结合自己的兴趣与需求,有选择、有顺序地学习。
而对于熟练者来说,则可以把书中的心得与自己的经验相比对,看看自己还有哪些区域尚未深入研究,同时思考一下书中的方案与自己常用的方案各有什么优点与缺点。
从本书各条技巧的具体编排方式来看,本书既可以像字典那样查阅,也可以像普通图书那样通读。很多条目都是用渐进的方式来编写的。作者不会在一开始就给出最佳方案,而是会先从简单的写法入手,逐步发现其缺点并加以完善,最后总结出一套便于使用且易于扩充的解决办法。
这样的演进方式既适用于本书所列的各个场景,也适用于日常的编程工作。如果能通过这些具体的条目来培养一套分析并解决问题的思路,那就可以更加深刻地体会Python语言的设计哲学及实践艺术。很多Python开发者都崇尚Pythonic编程方式,这种Pythonic方式不仅应该体现在代码风格和项目规范之中,而且更应该体现在思维模式和架构设计层面,这一点,我想应该是Effective系列的书籍值得反复品味的缘由吧。
虽说这59条技巧并不能涵盖所有的Python领域,但在经常接触的那几个主要领域中,它们却是相当有代表性和启发性的。我们可以把这些技巧以自己的方式实现出来,并封装成模块及软件包,以便在后续的工作中使用。而对于本书没有专门涉及的领域,如游戏开发、图形绘制、网络通信等,大家不妨也沿用Effective书系的一贯做法,把自己的经验总结成条目,进而以博客或开源项目的形式互相交流。这可以说是对Effective理念的一种延伸和发展。
由于许多Python开发者都同时具备C++及Java等其他语言的开发背景,所以Python中的很多概念都有好几种不同的称呼方式,而这些术语的中文翻译,自然也就呈现出了一词多译的现象。本书将尽量采用较为折中的办法来处理这些问题。
本书的翻译过程中,得到了机械工业出版社华章公司诸位编辑和工作人员的帮助,在此深表谢意。
由于译者水平有限,不足与疏漏之处,请大家发邮件至eastarstormlee@gmail.com,或访问github.com/jeffreybaoshenlee/zh-translation-errata-effective-python/issues留言,给我以批评和指教。该网页还有《中英文词汇对照表》,以供参考。
前言
本书会深入讲解如何以符合Python风格的(Pythonic)方式来编写程序,这种方式就是运用Python语言的最佳方式。笔者假定你对这门语言已经有了初步了解。编程新手可以通过本书学到各种Python功能的最佳用法,而编程老手则能够学会如何自信地运用一种功能强大的新工具。
笔者的目标是令大家学会用Python来开发优秀的软件。
本书涵盖的内容
本书每一章都包含许多互相关联的条目,大家可以按照自己的需要,随意阅读这些条目。每个条目都包含简明而具体的教程,告诉你应该如何更高效地编写Python程序。笔者在每个条目里面都给出了建议,告诉大家应该怎样做、应该避免哪些用法,以及如何在各种做法之间求得平衡,并解释了笔者所选的做法好在哪里。
本书中的各项条目,适用于Python 3和Python 2(请参阅本书第1条)。对于Jython、IronPython或PyPy等其他运行时环境,大部分条目应该同样适用。
第1章:用Pythonic方式来思考
Python开发者用Pythonic这个形容词来描述具有特定风格的代码。这种风格是大家在使用Python语言进行编程并相互协作的过程中逐渐形成的习惯。本章讲解如何以该风格来完成常见的Python编程工作。
第2章:函数
Python中的函数具备多种特性,这可以简化编程工作。Python函数的某些性质与其他编程语言中的函数相似,但也有些性质是Python独有的。本章介绍如何用函数来表达意图、提升可复用程度,并减少bug。
第3章:类与继承
Python是面向对象的语言。用Python编程时,通常需要编写新类,并定义这些类应该如何通过其接口及继承体系与外界相交互。本章讲解如何使用类和继承来表达对象所应具备的行为。
第4章:元类及属性
元类(metaclass)及动态属性(dynamic attribute)都是很强大的Python特性,然而它们也可能导致极其古怪、极其突然的行为。本章讲解这些机制的常见用法,以确保读者写出来的代码符合最小惊讶原则(rule of least surprise)。
第5章:并发及并行
用Python很容易就能写出并发程序,这种程序可以在同一时间做许多件不同的事情。我们也可以通过系统调用、子进程(subprocess)及C语言扩展来实现并行处理。本章讲解如何在不同情况下充分利用这些Python特性。
第6章:内置模块
Python预装了许多写程序时会用到的重要模块。这些标准软件包与通常意义上的Python语言联系得非常紧密,我们可以将其当成语言规范的一部分。本章将会讲解基本的内置模块。
第7章:协作开发
如果许多人要开发同一个Python程序,那就得仔细商量代码的写法了。即便你是一个人开发,也需要理解其他人所写的模块。本章讲解多人协作开发Python程序时所用的标准工具及最佳做法。
媒体评论
——Brandon Rhodes,Dropbox的软件工程师、2016至2017年PyCon会议主席