Effective Python:编写高质量Python代码的59个有效方法(英文版)_试读_书评_源码_高清

2024年12月17日 Python书籍 Python51

这本Effective Python:编写高质量Python代码的59个有效方法(英文版)图书,是2016-03-01月由电子工业出版社所出版的,著作者信息: [美] Brett Slatkin(布雷特·斯拉特金) 著,本版是第1次印刷, ISBN:9787121272622,品牌:博文视点, 这本书的包装是16开平装,所用纸张为胶版纸,全书页数248,字数有万字, 是本值得推荐的Python软件开发图书。

此书内容摘要

《Effective Python:编写高质量Python代码的59个有效方法 英文版》不是要讲述Python的基础编程,而是要帮你掌握Python独特的优势和魅力。《Effective Python:编写高质量Python代码的59个有效方法 英文版》中总结了59个Python编程的优秀实践、贴士和捷径,并用真实代码示例进行了解释。《Effective Python:编写高质量Python代码的59个有效方法 英文版》共分8章,第1章讲述Python的风格思想,介绍了Python中常见问题的推荐解决方案;第2章讲述如何使用Python函数来阐明意图、提升可重用性,并减少错误;第3章介绍如何使用类和继承来表达你对对象的预期行为;第4章介绍了使用这些元类和属性的常用语法;第5章讲述如何在并行和并发的场景下利用好Python;第6章讲述Python中必要的内置模块;第7章教你如何合作开发Python程序;第8章介绍如何使用Python调试、优化和测试程序。

关于此书作者

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

编辑们的推荐

适读人群 :Python编程人员

本系列其他书籍:

《Effective Javascript(英文版)》

《Effective Perl(第2版 英文版)》

《Effective Ruby(英文版)》

《Effective Objective C 2.0(英文版)》

《Effective Java(第2版 英文版)》

《C++之旅(英文版)》

《实现领域驱动设计(英文版)》

《C语言程序设计(第4版)英文版》

《Objective-C程序设计英文版(第6版)》

《Java虚拟机规范英文版 (Java SE 8版) 》

《代码大全英文版(第2版)》

《C++11程序设计(第2版 英文版)》

《C11编程导论(英文版)》

《Java SE8 程序设计(第3版 英文版)》

Effective Python:编写高质量Python代码的59个有效方法(英文版)图书的目录

前言
致谢
关于作者
Chapter 1: Pythonic Thinking
Item 1: Know Which Version of Python You’re Using
Item 2: Follow the PEP 8 Style Guide
Item 3: Know the Differences Between bytes , str , and unicode
Item 4: Write Helper Functions Instead of Complex Expressions
Item 5: Know How to Slice Sequences
Item 6: Avoid Using start , end , and stride in a Single Slice
Item 7: Use List Comprehensions Instead of map and filter
Item 8: Avoid More Than Two Expressions in List Comprehensions
Item 9: Consider Generator Expressions for Large Comprehensions
Item 10: Prefer enumerate Over range
Item 11: Use zip to Process Iterators in Parallel
Item 12: Avoid else Blocks After for and while Loops
Item 13: Take Advantage of Each Block in try / except / else / finally
Chapter 2: Functions
Item 14: Prefer Exceptions to Returning 暂无.
Item 15: Know How Closures Interact with Variable Scope
Item 16: Consider Generators Instead of Returning Lists
Item 17: Be Defensive When Iterating Over Arguments
Item 18: Reduce Visual Noise with Variable Positional Arguments
Item 19: Provide Optional Behavior with Keyword Arguments
Item 20: Use 暂无. and Docstrings to Specify Dynamic Default Arguments
Item 21: Enforce Clarity with Keyword-Only Arguments
Chapter 3: Classes and Inheritance
Item 22: Prefer Helper Classes Over Bookkeeping with Dictionaries and Tuples
Item 23: Accept Functions for Simple Interfaces Instead of Classes
Item 24: Use @classmethod Polymorphism to Construct Objects Generically
Item 25: Initialize Parent Classes with super
Item 26: Use Multiple Inheritance Only for Mix-in Utility Classes
Item 27: Prefer Public Attributes Over Private Ones
Item 28: Inherit from collections.abc for Custom Container Types
Chapter 4: Metaclasses and Attributes
Item 29: Use Plain Attributes Instead of Get and Set Methods
Item 30: Consider @property Instead of Refactoring Attributes
Item 31: Use Descriptors for Reusable @property Methods
Item 32: Use __getattr__ , __getattribute__ , and __setattr__ for Lazy Attributes
Item 33: Validate Subclasses with Metaclasses
Item 34: Register Class Existence with Metaclasses
Item 35: Annotate Class Attributes with Metaclasses
Chapter 5: Concurrency and Parallelism
Item 36: Use subprocess to Manage Child Processes
Item 37: Use Threads for Blocking I/O, Avoid for Parallelism
Item 38: Use Lock to Prevent Data Races in Threads
Item 39: Use Queue to Coordinate Work Between Threads
Item 40: Consider Coroutines to Run Many Functions Concurrently
Item 41: Consider concurrent.futures for True Parallelism
Chapter 6: Built-in Modules
Item 42: Define Function Decorators with functools.wraps
Item 43: Consider contextlib and with Statements for Reusable try / finally Behavior
Item 44: Make pickle Reliable with copyreg
Item 45: Use datetime Instead of time for Local Clocks
Item 46: Use Built-in Algorithms and Data Structures
Item 47: Use decimal When Precision Is Paramount
Item 48: Know Where to Find Community-Built Modules
Chapter 7: Collaboration
Item 49: Write Docstrings for Every Function, Class, and Module
Item 50: Use Packages to Organize Modules and Provide Stable APIs
Item 51: Define a Root Exception to Insulate Callers from APIs
Item 52: Know How to Break Circular Dependencies
Item 53: Use Virtual Environments for Isolated and Reproducible Dependencies
Chapter 8: Production
Item 54: Consider Module-Scoped Code to Configure Deployment Environments
Item 55: Use repr Strings for Debugging Output
Item 56: Test Everything with unittest
Item 57: Consider Interactive Debugging with pdb
Item 58: Profile Before Optimizing
Item 59: Use tracemalloc to Understand Memory Usage and Leaks
Index

部分内容试读

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)。
从何处获取代码和勘误表
查看本书中示例的完整代码是很有用的,这样能够更好地理解自己的代码,以及为什么程序会按照描述的那样运行。可以在本书的网站找到本书中所有代码片段的源代码。本书相关的任何勘误也会在该网站上更正。
致谢
这本书的成功出版离不开生活中很多人的指导、支持和鼓励。
首先感谢Scott Meyers的高效软件开发系列图书(Effective Software Development series)。第一次看Effective C++的时候,我15岁,那时候我爱上了C++。毫无疑问,Scott的书籍让我积累了学术经验,并在谷歌找到了第一份工作。我很高兴有机会写这本书。
感谢我的核心技术审校者提供的深刻而缜密的反馈,他们是Brett Cannon、Tavis Rudd和Mike Taylor。感谢Leah Culver和Adrian Holovaty对本书的认可。感谢我的朋友们Michael Levine、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,感谢生活中一直以来的爱与支持,还有乐观的笑声

关于此书评价

暂无.

书摘内容

暂无.

Effective Python:编写高质量Python代码的59个有效方法(英文版)最新最全的试读、书评、目录、简介信息由Python中文网整理提供。

本文链接:http://so.lmcjl.com/news/19704/

展开阅读全文