Effective Python:编写高质量Python代码的59个有效方法 英文版
  • 推荐0
  • 收藏2
  • 浏览959

Effective Python:编写高质量Python代码的59个有效方法 英文版

(美)Brett Slatkin(布雷特·斯拉特金) (作者)  无 (译者)

  • 丛  书:原味精品书系
  • 书  号:978-7-121-27262-2
  • 出版日期:2016-04-05
  • 页  数:248
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: Effective Python: 59 Specific Ways to Write Better Python
  • 原书号:0134034287
  • 维护人:张春雨
本书不是要讲述 Python 的基础编程,而是要帮你掌握 Python 独特的优势和魅力。书中总结了 59个 Python 编程的优秀实践、贴士和捷径,并用真实代码示例进行了解释。全书共分 8 章,第 1 章讲述Python 的风格思想,介绍了 Python 中常见问题的推荐解决方案;第 2 章讲述如何使用 Python 函数来阐明意图、提升可重用性,并减少错误;第 3 章介绍如何使用类和继承来表达你对对象的预期行为;第4章介绍了使用这些元类和属性的常用语法;第5章讲述如何在并行和并发的场景下利用好Python;第 6 章讲述 Python 中必要的内置模块;第 7 章教你如何合作开发 Python 程序;第 8 章介绍如何使用Python 调试、优化和测试程序。
秉承“Effective Software Development Series”系列的简洁、场景驱动的风格
本书赞誉
本书中的每一个项目都有自己的源代码,都是一个自包含的课程。这就让这本书具有了随机可读的特性:无论读者需要按照什么顺序,都可以很容易地浏览和学习项目。我会把 Effective Python 推荐给学生们,因为它以紧凑的形式向 Python 程序员提供了各方面的建议。
——Brandon Rhodes,Dropbox 软件工程师,PyCon6~2017 主席
我已经用 Python 编程好多年了,我认为我已经很了解 Python 了。感谢这本书中的技巧和建议让我意识到我可以让我的Python代码运行得更快(比如使用Python内建的数据结构),让我的代码更容易阅读(比如强制只使用关键字参数),并且让代码更符合 Python 语言编程理念的代码风格(比如用 zip 并行地迭代列表)。
——Pamela Fox,Khan 学院教育工作者
如果在我第一次从 Java 转向 Python 的时候,我就拥有这本书,那么我将节省很多个月的写重复代码的时间,那时候每当我意识到自己做的事情不符合 Python 编程理念时,我就会重写代码。这本书收集了 Python 中必须知道的绝大多数基础知识,不需要我们再通过课程对它们进行数月甚至数年的学习。本书涉及的范围之广是令人印象深刻的,以 PEP8 的重要性及Python的习惯用法开篇,然后贯穿函数、方法和类的设计,以及标准库的高效使用、高质量 API 的设计、测试及性能测量,这本书真的包含了一切。无论对 Python 新手还是有经验的开发人员来说,这都是一本出色的介绍读本。
——Bayer,SQLAlchemy 的创建者
Effective Python 这本书通过明确的准则帮你优化 Python 代码风格和功能,进而让你的Python 技能达到更高的级别。
——Leah Culver,Dropbox 主开发者
对于那些其他语言经验丰富的、正寻求快速开启 Python 学习,并且要超越基本语言构造以编写更符合 Python 规范的代码的开发人员来说,本书是一个非常宝贵的资源。这本书的组织清晰、简洁、易于消化,而且每个项目、每一章都可以独立地作为一个特定主题。
本书用纯 Python 的知识涵盖了 Python 语言结构的广度,而没有用更广泛的 Python 生态系统让读者感觉混淆。对于那些经验丰富的开发人员来说,本书为他们提供了他们之前可能没遇到过的深入的语言结构示例,以及一些不常用的语言特性的例子。可以很明显地看出,本书作者使用 Python 时得心应手,他用他的专业经验提醒读者去注意微妙的错误和常见的错误方式。此外,这本书还做了一个出色的工作,那就是指出了 Python 2.X 和 Python 3.X的微妙差异,因此可以作为 Python 不同版本之间过渡的参考资料。
——Katherine Scott,Tempo Automation 软件工程师主管
这本书对新手和有经验的程序员来说都是一本好书,示例代码和说明都是作者经过深思熟虑的,并且阐释简明透彻。
——C. Titus Brown,加州大学戴维斯分校副教授
对于使用 Python 高级的用法构建一个清晰的可维护的软件来说,本书是一个非常实用的资源,那些想要把他们的 Python 技能提高到一个新水平的人将受益于本书的建议与实践。
——Wes McKinney,Python pandas 库创建者,
Python for Data Analysis 一书作者,
Cloudera 软件工程师

前言
Python 编程语言具有独特的优势和魅力,可能很难被掌握。很多熟悉其他语言的程序员经常带着思维定势去接近 Python,这样就不能感受它的全部表现力了。还有些程序员在其他方向走得太远,过度使用 Python 的特性可能会在以后引起严重问题。
本书提供了编写符合 Python 规范的代码的方式:Python 的最佳使用方式。阅读本书需要对该语言有一个基本的了解。新手程序员可以学习 Python 能力的最佳实践,有经验的程序员可以学习如何自信地接受一个陌生的新工具。
本书的目标是让你做好准备,迎接 Python 将为你带来的巨大影响。
这本书覆盖的内容
本书的每章都包含了一个广泛但是相关联的项目。你可以根据自己的兴趣在项目间任意跳跃。每个项目都包含简洁具体的指导,用以说明如何更有效地编写 Python 程序。每个项目包括建议做什么、需要避免什么、如何取得适当的平衡,以及为什么这是最好的选择。
无论你使用的 Python 2 还是 Python 3,这本书中的项目都是适用的(见 Item 1:Know Which Version of Python You're Using)。对于使用运行时的 Jython、IronPython 或者 Pypy 的程序员,也会发现本书中的大多数项目是适用的。
第 1 章 Python 风格思想(Pythonic Thinking)
Python 社区已经发展到了用形容词 Pythonic 来描述遵循特定样式的代码的阶段。长期以来,Python 的惯用语法在语言上以及和其他语言合作上经受住了考验。本章介绍了Python 中最常见事情的最佳做法。
第 2 章 函数(Functions)
Python 函数有各种各样的额外功能,这使得程序员的生活更轻松了。有些函数的功能与其他编程语言类似,但很多函数的功能是 Python 独有的。本章介绍如何使用函数来阐明意图、提升可重用性,并减少错误。
第 3 章 类和继承(Classes and Inheritance)
Python 是一门面向对象语言。想要在 Python 中把事情做好,经常需要写新类并定义它们如何通过接口和层次交互。本章介绍如何使用类和继承来表达你对对象的预期行为。
第 4 章 元类和属性(Metaclasses and Attributes)
元类和动态属性是 Python 的强大功能。但是它们也能够让你的实现出现离奇和意想不到的行为。本章介绍了使用这些机制常用的语法,以确保让你遵循最少意外的原则(rule of least surprise)。
第 5 章 并行和并发(Concurrency and Parallelism)
Python 可以很容易地编写在同一时间内做很多不同事情的并发程序。Python 也可以通过系统调用做并行工作。比如使用 subprocess 模块和 C 扩展。本章介绍了如何在这些不同的微妙场景下最好地利用 Python。
第 6 章 内建模块(Built-in Modules)
Python 安装了很多写程序时可能会用到的重要模块。这些标准包与 Python 的惯用语法之间的联系是如此紧密,以至于它们也可能成为语言规范的一部分。本章讲述了必要的内置模块。
第 7 章 合作(Collaboration)
Python 程序合作中要求你思考如何编写代码。即使独自工作,你也需要了解如何使用别人写好的模块。本章介绍的标准工具和最佳实践将教你如何合作开发 Python 程序。
第 8 章 生产(Production)
Python 提供可以适应多种部署环境的便利。它还具有内置的模块,有助于强化程序,使之健壮无比。本章将介绍如何使用 Python 调试、优化和测试程序,以便在运行时最大限度地提高质量和性能。
本书中一些约定
本书中的 Python 代码段使用了等宽字体,并且有语法高亮。我采取了 Python 风格指南的一些艺术性的许可,使代码示例能够更好地适应一本书的格式,并且能够更突出最重要的部分。
当一行代码太长时,我用 ? 字符换行;截断片段用省略号注释( #... )来表示,代表某些非核心内容的代码;我略去了嵌入的文档,以减小代码示例的大小。我强烈建议你不要在自己的项目中这样做,相反,你应该遵循风格指南(见 Item 2:Follow the PEP 8 Style Guide),并撰写文档(见 Item 49:Write Docstrings for Every Function, Class, and Module)。
本书中大多数的代码片段都配有相应的运行结果输出。这里说的“输出”是指在控制台或者终端输出。当在交互式的解释器中运行 Python 程序时,你看到了什么?输出部分是等宽字体,并且前面有 >>> 行(Python 交互式提示)。我们的想法是,你可以将键入的代码片段转换为 Python shell,再次产生期望的输出。
最后,还有一些前面没有 >>> 行的其他等宽字体。这些代表除了运行 Python 解释器之外的程序的输出。这些例子往往以 $ 开头,表明我正在运行一个命令行 shell 的程序(如Bash)。
从何处获取代码和勘误表
查看本书中示例的完整代码是很有用的,这样能够更好地理解自己的代码,以及为什么程序会按照描述的那样运行。可以在本书的网站( http://www.effectivepython.com )找到本书中所有代码片段的源代码。本书相关的任何勘误也会在该网站上更正。

致谢
这本书的成功出版离不开生活中很多人的指导、支持和鼓励。
首 先 感 谢 Scott Meyers 的 高 效 软 件 开 发 系 列 图 书(Effective Software Development series)。第一次看 Effective C++ 的时候,我 15 岁,那时候我爱上了 C++。毫无疑问,Scott 的书籍让我积累了学术经验,并在谷歌找到了第一份工作。我很高兴有机会写这本书。
感谢我的核心技术审校者提供的深刻而缜密的反馈,他们是 Brett Cannon、Tavis Rudd和 Mike Taylor。感谢 Leah Culver 和 Adrian Holovaty 对本书的认可。感谢我的朋友们 MichaelLevine、Marzia Niccolai、Ade Oshineye 和 Katrina Sostek,他们耐心阅读了本书的早期版本。感谢谷歌同事的审校。如果没有你们的帮助,这本书远没有今天清晰可读。
感谢每一位帮助这本书成为现实的人。感谢我的编辑 Trina MacDonald 对本书自始至终的支持。感谢帮助过我的整个编辑团队:开发编辑 Tom Cirtin 和 Chris Zahn、编辑助理Olivia Basegio、销售经理 Stephane Nakib、文字编辑 Stephanie Geels 和生产编辑 Julie Nahil。
感谢我知道并且合作过的出色的 Python 程序员 Anthony Baxter、Brett Cannon、Wesley Chun、Jeremy Hylton、Alex Martelli、Neal Norwitz、Guido van Rossum、Andy Smith、Greg Stein 和 Ka-Ping Yee,我很欣赏你们的修养和领导力。Python 有一个很好的社区,很荣幸我能够成为其中的一分子。
感谢我的团队成员们,多年来你们一直允许我这个最差的成员留在队中。感谢 Kevin Gibbs 帮我承担风险。感谢 Ken Ashcraft、Ryan Barrett 和 Jon McAlister 教我如何去做。感谢Brad Fitzpatrick 让我们的团队到达一个新的水准。感谢 Paul McDonald 共同创办了这个疯狂的项目。感谢 Ginsberg 和 Jack Hebert 让本书成为现实。
感 谢 曾 经 鼓 励 我 的 老 师:Ben Chelf、Vince Hugo、Russ Lewin、Jon Stemmle、Derek Thomson 和 Daniel Wang。没有你们的指导,我可能永远不会达到现在的水平,不会具备教导别人的能力。
感谢我的母亲,她让我坚持目标,并鼓励我成为一名程序员。感谢我的兄弟、祖父母,以及其他的家人和童年伙伴们,你们在我成长的过程中扮演着重要的角色。
最后,感谢我的妻子 Colleen,感谢生活中一直以来的爱与支持,还有乐观的笑声。

关于作者
Brett Slatkin 是一名谷歌高级软件工程师,他是谷歌消费者调查的工程主管兼联合创始人之一。他曾供职于 Google App Engine 的 Python 基础设置部门。他是 PubSubHubbub 协议的创建者之一。十年前,年纪轻轻的他就已经在用 Python 来管理谷歌庞大的服务器机群了。
除了日常工作之外,他还研究开源的工具,会在他的个人网站( http://onebigfluke.com )写软件、自行车等方面的文章。他获得了哥伦比亚大学(纽约)计算机工程学士学位。目前住在旧金山。

目录

目录 阅读
Chapter 1:Pythonic Thinking
Chapter 2:Functions
Chapter 3: Classes and Inheritance
Chapter 4:Metaclasses and Attributes
Chapter 5: Concurrency and Parallelism
Chapter 6: Built-in Modules
Chapter 7:ollaboration
Chapter 8:Production

读者评论

同系列书

  • Clean Architecture:软件架构与设计匠艺(英文版)

    Robert C. Martin (作者) Robert C. Martin(罗伯特·C·马丁) (译者)

    马丁的简介代码不仅仅是提供选项。在半个世纪的软件环境中,每一种可以想象的类型,马丁告诉你做出什么选择,以及为什么它们对你的成功至关重要。正如你所渴望的,这本书中...

     
  • Effective Java(第2版)英文版

    (美)Joshua Bloch(约书亚·布洛赫) (作者) 无 (译者)

    本书通过78个有效案例,旨在帮助读者深入理解Java,以写出更加清楚、健壮、可重复使用的代码。书中每个章节均包含小论文,针对Java平台和杰出的代码样例,提供了...

    ¥65.00
  • C11编程导论英文版

    (美)Paul Deitel(保罗·戴特尔),(美) Harvey Deitel(哈维·戴特尔) (作者) (译者)

    本书沿用了Deitel特色的“程序实况解说”,深入探讨了C语言和C标准库。通过完整的语法着色、代码高亮、代码演练和程序输出,全面地介绍了测试程序的概念。本书汇集...

    ¥89.00
  • Effective Javascript:编写高质量JavaScript代码的68个有效方法 英文版

    (美)David Herman(大卫·赫尔曼) (作者) 无 (译者)

    本书由资深 JavaScript 技术专家 David Herman 所著。书中基于 JavaScript 标准的新版本前所未有地阐明了 JavaScript ...

    ¥65.00
  • Effective Python:编写高质量Python代码的59个有效方法 英文版

    (美)Brett Slatkin(布雷特·斯拉特金) (作者) 无 (译者)

    本书不是要讲述 Python 的基础编程,而是要帮你掌握 Python 独特的优势和魅力。书中总结了 59个 Python 编程的优秀实践、贴士和捷径,并用真实...

    ¥65.00

相关图书

看漫画学Python:有趣、有料、好玩、好用(全彩修订版)

关东升 著 赵大羽 绘 (作者)

ython是一门既简单又强大的编程语言,被广泛应用于数据分析、大数据、网络爬虫、自动化运维、科学计算和人工智能等领域。Python也越来越重要,成为国家计算机等...

 

看漫画学Python 2:有趣、有料、好玩、好用(全彩进阶版)

关东升 ,赵大羽 (作者)

本书是《看漫画学Python》的进阶版本,继续秉承有趣、有料、好玩、好用的理念,并继续采用《看漫画学Python》一书中3个不同的漫画人物角色,通过这3个角色之...

 

趣玩Python:自动化办公真简单(双色+视频版)

本书以数据收集→数据清洗→数据分析→数据可视化→根据数据可视化结果(即图表)做决策为脉络,介绍Python在实际工作场景中的应用,侧重于用Python解决工作中...

 

软件交付通识

董越 (作者)

软件交付过程是指在编程序改代码之后,直到将软件发布给用户使用之前的一系列活动,如提交、集成、构建、部署、测试等。本书作为通识类图书,对软件交付过程的各个方面进行...

¥89.00

分布式系统与一致性

陈东明 (作者)

一致性是非常重要的分布式技术。众所周知,分布式系统有很多特性,如可用性、可靠性等,这些特性多多少少会与一致性产生关系,受到一致性的影响。要全面研究、掌握分布式技...

¥79.00

人人都是产品经理(案例版):淘宝十年产品事

陶英琪 (作者)

做产品经理需要不断成长。然而回顾漫长的产品发展史,我们总会发现:有太多犯过的错误在反复出现,每一次都会有人掉入同样的“坑”。大量看似充满新意的点子、“前无古人”...

¥69.00