Effective Python:编写高质量python代码的59个有效方法是一本python编辑手册,由美国程序员布雷特·斯拉特金编著。本书以使用场景为主导的精练教学方式,汇聚了59条优秀的实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。其核心内容包括涵盖Python 3.x及Python 2.x主要应用领域的实用指南、如何准确地表达类与对象的行为、更为高效的并发及并行方式、与Python内置模块相关的编程技巧和习惯用法、多人协作时所用的开发工具和实践方式等等,通过学习,读者可以了解到解决关键编程任务所用的佳方式,并学会编写易于理解、便于维护且利于改进的代码,欢迎免费下载阅读。
内容介绍
《Effective Python:编写高质量python代码的59个有效方法》涵盖的内容本书每一章都包含许多互相关联的条目,大家可以按照自己的需要,随意阅读这些条目。每个条目都包含简明而具体的教程,告诉你应该如何更高效地编写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程序时所用的标准工具及最佳做法。
第8章:部署Python提供了一些工具,使我们可以把软件部署到不同的环境中。它也提供了一些模块,令开发者可以把程序编写得更加健壮。本章讲解如何使用Python调试、优化并测试程序,以提升其质量与性能。
effective python章节目录
本书赞誉 译者序 前 言 致 谢 第1章 用Pythonic方式来思考 1 第1条:确认自己所用的Python版本 1 第2条:遵循PEP 8风格指南 3 第3条:了解bytes、str与unicode的区别 5 第4条:用辅助函数来取代复杂的表达式 8 第5条:了解切割序列的办法 10 第6条:在单次切片操作内,不要同时指定start、end和stride 13 第7条:用列表推导来取代map和f?ilter 15 第8条:不要使用含有两个以上表达式的列表推导 16 第9条:用生成器表达式来改写数据量较大的列表推导 18 第10条:尽量用enumerate取代range 20 第11条:用zip函数同时遍历两个迭代器 21 第12条:不要在for和while循环后面写else块 23 第13条:合理利用try/except/else/f?inally结构中的每个代码块 25 第2章 函数 28 第14条:尽量用异常来表示特殊情况,而不要返回None 28 第15条:了解如何在闭包里使用外围作用域中的变量 30 第16条:考虑用生成器来改写直接返回列表的函数 35 第17条:在参数上面迭代时,要多加小心 37 第18条:用数量可变的位置参数减少视觉杂讯 41 第19条:用关键字参数来表达可选的行为 43 第20条:用None和文档字符串来描述具有动态默认值的参数 46 第21条:用只能以关键字形式指定的参数来确保代码明晰 49 第3章 类与继承 53 第22条:尽量用辅助类来维护程序的状态,而不要用字典和元组 53 第23条:简单的接口应该接受函数,而不是类的实例 58 第24条:以@classmethod形式的多态去通用地构建对象 62 第25条:用super初始化父类 67 第26条:只在使用Mix-in组件制作工具类时进行多重继承 71 第27条:多用public属性,少用private属性 75 第28条:继承collections.abc以实现自定义的容器类型 79 第4章 元类及属性 84 第29条:用纯属性取代get和set方法 84 第30条:考虑用@property来代替属性重构 88 第31条:用描述符来改写需要复用的@property方法 92 第32条:用__getattr__、__getattribute__和__setattr__实现按需生成的属性 97 第33条:用元类来验证子类 102 第34条:用元类来注册子类 104 第35条:用元类来注解类的属性 108 第5章 并发及并行 112 第36条:用subprocess模块来管理子进程 113 第37条:可以用线程来执行阻塞式I/O,但不要用它做平行计算 117 第38条:在线程中使用Lock来防止数据竞争 121 第39条:用Queue来协调各线程之间的工作 124 第40条:考虑用协程来并发地运行多个函数 131 第41条:考虑用concurrent.futures来实现真正的平行计算 141 第6章 内置模块 145 第42条:用functools.wraps定义函数修饰器 145 第43条:考虑以contextlib和with语句来改写可复用的try/f?inally代码 148 第44条:用copyreg实现可靠的pickle操作 151 第45条:应该用datetime模块来处理本地时间,而不是用time模块 157 第46条:使用内置算法与数据结构 161 第47条:在重视精确度的场合,应该使用decimal 166 第48条:学会安装由Python开发者社区所构建的模块 168 第7章 协作开发 170 第49条:为每个函数、类和模块编写文档字符串 170 第50条:用包来安排模块,并提供稳固的API 174 第51条:为自编的模块定义根异常,以便将调用者与API相隔离 179 第52条:用适当的方式打破循环依赖关系 182 第53条:用虚拟环境隔离项目,并重建其依赖关系 187 第8章 部署 193 第54条:考虑用模块级别的代码来配置不同的部署环境 193 第55条:通过repr字符串来输出调试信息 195 第56条:用unittest来测试全部代码 198 第57条:考虑用pdb实现交互调试 201 第58条:先分析性能,然后再优化 203 第59条:用tracemalloc来掌握内存的使用及泄漏情况 208
使用说明
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
发表评论
1人参与,1条评论- 第1楼湖南省长沙市电信网友发表于: 2019-03-06 14:20:14
- 非常好0盖楼(回复)
软件排行榜
热门推荐
- 得间免费小说电脑版 v5.3.0.372.58M / 简体中文
- 南方Plus电脑版 v11.9.026.47M / 简体中文
- 网易新闻电脑版 v113.197.68M / 简体中文
- 开源阅读电脑版 v3.2517.96M / 简体中文
- 京东读书电脑版 v1.13.4官方版1.98M / 简体中文
- 未公开的Oracle数据库秘密 迪贝斯pdf扫描版34.69M / 简体中文
- linux常用命令大全 chm版1.48M / 简体中文
- docker入门实战 pdf完整版1.38M / 简体中文
- Scala程序设计第二版 pdf高清完整版15.83M / 简体中文
- HotSpot实战(陈涛著) 中文pdf扫描版82M / 简体中文