4.23文创礼盒,买2个减5元 读书月福利
欢迎光临中图网 请 | 注册
> >
Effective Python:编写高质量Python代码的90个有效方法(原书第2版)

Effective Python:编写高质量Python代码的90个有效方法(原书第2版)

出版社:机械工业出版社出版时间:2021-02-01
开本: 16开 页数: 388
中 图 价:¥94.2(7.3折) 定价  ¥129.0 登录后可看到会员价
加入购物车 收藏
运费6元,满69元免运费
?快递不能达地区使用邮政小包,运费14元起
云南、广西、海南、新疆、青海、西藏六省,部分地区快递不可达
本类五星书更多>

Effective Python:编写高质量Python代码的90个有效方法(原书第2版) 版权信息

  • ISBN:9787111674023
  • 条形码:9787111674023 ; 978-7-111-67402-3
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 所属分类:>

Effective Python:编写高质量Python代码的90个有效方法(原书第2版) 本书特色

●本书可以帮你掌握真正的Pythonic编程方式,令你能够完全发挥出Python语言的强大功能,并写出健壮而高效的代码。Scott Meyers在畅销书Effective C++中开创了一种以使用场景为主导的精练教学方式,本书作者Brett Slatkin就以这种方式汇聚了90条实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。 ●Slatkin根据自己在Google公司多年开发Python基础架构所积累的经验,揭示Python语言中一些鲜为人知的微妙特性,并给出了能够改善代码功能及运行效率的习惯用法。通过本书,你能够了解到解决关键编程任务所用的奇妙方式,并学会编写易于理解、便于维护且利于改进的代码。 ●“自2015年第1版出版之后,我一直在向人推荐这本书。第2版更新并补充了涉及Python 3的内容,里面写满了各种实用的Python编程技巧,这些技巧对新手和老手都有帮助。” —Wes McKinney,Python Pandas项目创始人,Ursa Labs的主管 ●“如果你是从其他语言转到Python的,那就把这本书当成权威指南来看吧!它会教你怎样充分利用Python的各种特性。我用Python已经快20年了,但还是能够从这本书里发现很多有用的技巧,尤其是与Python 3的新特性有关的技巧。本书中的建议都很实用,可以帮助我们判断什么样的代码才是Python风格的代码。” —Simon Willison,Django联合创始人 ●“我用Python写了很多年程序,认为自己已经很了解这门语言了,但是看过这本书中的各项技巧之后,我才发现自己写的代码仍然有很多地方可以改进。比如可以通过二分法在有序的列表中搜索,让程序跑得更快;可以采用只能通过关键字形式来指定的参数把代码写得更加清晰易读;可以通过星号表达式来拆分序列,减少出错率;可以通过zip并行迭代多个列表,让代码更具Python风格。第2版还有个好处,就是它能让我很快掌握Python 3的新特性,例如walrus操作符、f-string、typing模块等。” —Pamela Fox,可汗学院编程课创始人 ●“Python 3终于成了Python的标准版本,它其实已经做了8次小的修订,其中添加了许多新特性。Brett Slatkin这次带来的Effective Python第2版,讲解了大量新的Python编程习惯,并且给出了很多条明晰的建议,这些内容考虑到了从Python 3.0到Python 3.8之间的各个版本,至于Python 2,现在可以让它歇一歇了。本书前面几章介绍了Python 3的许多新语法和新概念,比如string对象、byte对象、f-string、赋值表达式(assignment expression,作者会提到关于这种表达式的几个你不一定知道的特殊叫法),以及如何把tuple中的其他元素全都捕获下来。后面几章谈的主题比较大,其中有些内容我原来没听说过,还有一些我虽然听说过,但总找不到特别好的办法给别人讲解。比如第6章,其中有一条建议很棒,那就是第51条。另外,作者还介绍了一个奇妙的方法,叫作__init_subclass__(),我原来不太熟悉。在介绍并发与并行的章节中,第53条建议讲得很好,当然作者还讲了asyncio(异步I/O)与coroutine(协程)的问题,而且讲得很对。另外就是谈稳定与性能的那一章,其中第70条建议值得注意。总之,每一部分都写得很棒,作者把这些实践技巧讲解得相当清晰,以后我打算引用书里的一些内容,因为这些建议实在是很有道理。如果今年只读一本Python书的话,那肯定该选这一本。” —Mike Bayer,SQLAlchemy创始人 ●“刚学编程的人和有经验的开发者都非常适合看这本书。书中的范例代码写得很周详,作者解释得也相当精准、透彻。第2版更新了与Python 3有关的建议,这实在是太好了。我已经用Python近20年了,但还是每看几页就能发现一些新的知识。书中给出的建议,我想每个人都应该听取。” —Titus Brown,加州大学戴维斯分校副教授 ●“与上一版一样,Brett Slatkin依然很好地将整个Python开发界的各种经验,全都浓缩到了一本书中。他既谈了元类与并发这样的高端主题,也没有忘记稳定性、测试与协作开发等重要基础知识。本书新版用大家都能接受的观点,讲述了什么叫作Python式的编程风格。” —Brandon Rhodes,python-patterns.guide的作者

Effective Python:编写高质量Python代码的90个有效方法(原书第2版) 内容简介

本书可以帮你掌握真正的Pythonic编程方式,令你能够接近发挥出Python语言的强大功能,并写出健壮而高效的代码。Scott Meyers在畅销书《Effective C++》中开创了一种以使用场景为的精练教学方式,本书作者Brett Slatkin就以这种方式汇聚了90条实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。
Slatkin根据自己在Google公司多年开发Python基础架构所积累的经验,揭示Python语言中一些鲜为人知的微妙特性,并给出了能够改善代码功能及运行效率的习惯用法。通过本书,你能够了解到解决关键编程任务所用的奇妙方式,并学会编写易于理解、便于维护且利于改进的代码。

Effective Python:编写高质量Python代码的90个有效方法(原书第2版) 目录

第1章 培养Pythonic思维 // 1 第1条 查询自己使用的Python版本 // 1 第2条 遵循PEP 8风格指南 // 2 第3条 了解bytes与str的区别 // 5 第4条 用支持插值的f-string取代C风格的格式字符串与str.format方法 // 9 第5条 用辅助函数取代复杂的表达式 // 19 第6条 把数据结构直接拆分到多个变量里,不要专门通过下标访问 // 21 第7条 尽量用enumerate取代range // 25 第8条 用zip函数同时遍历两个迭代器 // 26 第9条 不要在for与while循环后面写else块 // 28 第10条 用赋值表达式减少重复代码 // 31 第2章 列表与字典 // 37 第11条 学会对序列做切片 // 37 第12条 不要在切片里同时指定起止下标与步进 // 40 第13条 通过带星号的unpacking操作来捕获多个元素,不要用切片 // 42 第14条 用sort方法的key参数来表示复杂的排序逻辑 // 45 第15条 不要过分依赖给字典添加条目时所用的顺序 // 51 第16条 用get处理键不在字典中的情况,不要使用in与KeyError // 56 第17条 用defaultdict处理内部状态中缺失的元素,而不要用setdefault // 61 第18条 学会利用__missing__构造依赖键的默认值 // 63 第3章 函数 // 66 第19条 不要把函数返回的多个数值拆分到三个以上的变量中 // 66 第20条 遇到意外状况时应该抛出异常,不要返回None // 69 第21条 了解如何在闭包里面使用外围作用域中的变量 // 71 第22条 用数量可变的位置参数给函数设计清晰的参数列表 // 75 第23条 用关键字参数来表示可选的行为 // 77 第24条 用None和docstring来描述默认值会变的参数 // 80 第25条 用只能以关键字指定和只能按位置传入的参数来设计清晰的参数列表 // 83 第26条 用functools.wraps定义函数修饰器 // 88 第4章 推导与生成 // 91 第27条 用列表推导取代map与filter // 91 第28条 控制推导逻辑的子表达式不要超过两个 // 93 第29条 用赋值表达式消除推导中的重复代码 // 94 第30条 不要让函数直接返回列表,应该让它逐个生成列表里的值 // 97 第31条 谨慎地迭代函数所收到的参数 // 100 第32条 考虑用生成器表达式改写数据量较大的列表推导 // 104 第33条 通过yield from把多个生成器连起来用 // 106 第34条 不要用send给生成器注入数据 // 108 第35条 不要通过throw变换生成器的状态 // 113 第36条 考虑用itertools拼装迭代器与生成器 // 117 第5章 类与接口 // 122 第37条 用组合起来的类来实现多层结构,不要用嵌套的内置类型 // 122 第38条 让简单的接口接受函数,而不是类的实例 // 128 第39条 通过@classmethod多态来构造同一体系中的各类对象 // 131 第40条 通过super初始化超类 // 136 第41条 考虑用mix-in类来表示可组合的功能 // 140 第42条 优先考虑用public属性表示应受保护的数据,不要用private属性表示 // 144 第43条 自定义的容器类型应该从collections.abc继承 // 149 第6章 元类与属性 // 153 第44条 用纯属性与修饰器取代旧式的setter与getter方法 // 153 第45条 考虑用@property实现新的属性访问逻辑,不要急着重构原有的代码 // 157 第46条 用描述符来改写需要复用的@property方法 // 160 第47条 针对惰性属性使用__getattr__、__getattribute__及__setattr__ // 165 第48条 用__init_subclass__验证子类写得是否正确 // 170 第49条 用__init_subclass__记录现有的子类 // 177 第50条 用__set_name__给类属性加注解 // 181 第51条 优先考虑通过类修饰器来提供可组合的扩充功能,不要使用元类 // 185 第7章 并发与并行 // 191 第52条 用subprocess管理子进程 // 192 第53条 可以用线程执行阻塞式I/O,但不要用它做并行计算 // 195 第54条 利用Lock防止多个线程争用同一份数据 // 199 第55条 用Queue来协调各线程之间的工作进度 // 202 第56条 学会判断什么场合必须做并发 // 210 第57条 不要在每次fan-out时都新建一批Thread实例 // 214 第58条 学会正确地重构代码,以便用Queue做并发 // 218 第59条 如果必须用线程做并发,那就考虑通过ThreadPoolExecutor实现 // 224 第60条 用协程实现高并发的I/O // 226 第61条 学会用asyncio改写那些通过线程实现的I/O // 230 第62条 结合线程与协程,将代码顺利迁移到asyncio // 239 第63条 让asyncio的事件循环保持畅通,以便进一步提升程序的响应能力 // 245 第64条 考虑用concurrent.futures实现真正的并行计算 // 248 第8章 稳定与性能 // 253 第65条 合理利用try/except/else/finally结构中的每个代码块 // 253 第66条 考虑用contextlib和with语句来改写可复用的try/finally代码 // 258 第67条 用datetime模块处理本地时间,不要用time模块 // 262 第68条 用copyreg实现可靠的pickle操作 // 265 第69条 在需要准确计算的场合,用decimal表示相应的数值 // 272 第70条 先分析性能,然后再优化 // 274 第71条 优先考虑用deque实现生产者-消费者队列 // 278 第72条 考虑用bisect搜索已排序的序列 // 284 第73条 学会使用heapq制作优先级队列 // 286 第74条 考虑用memoryview与bytearray来实现无须拷贝的bytes操作 // 294 第9章 测试与调试 // 300 第75条 通过repr字符串输出调试信息 // 301 第76条 在TestCase子类里验证相关的行为 // 304 第77条 把测试前、后的准备与清理逻辑写在setUp、tearDown、setUpModule与tearDownModule中,以防用例之间互相干扰 // 309 第78条 用Mock来模拟受测代码所依赖的复杂函数 // 312 第79条 把受测代码所依赖的系统封装起来,以便于模拟和测试 // 319 第80条 考虑用pdb做交互调试 // 322 第81条 用tracemalloc来掌握内存的使用与泄漏情况 // 326 第10章 协作开发 // 329 第82条 学会寻找由其他Python开发者所构建的模块 // 329 第83条 用虚拟环境隔离项目,并重建依赖关系 // 330 第84条 每一个函数、类与模块都要写docstring // 335 第85条 用包来安排模块,以提供稳固的API // 339 第86条 考虑用模块级别的代码配置不同的部署环境 // 344 第87条 为自编的模块定义根异常,让调用者能够专门处理与此API有关的异常 // 346 第88条 用适当的方式打破循环依赖关系 // 350 第89条 重构时考虑通过warnings提醒开发者API已经发生变化 // 355 第90条 考虑通过typing做静态分析,以消除bug // 361
展开全部

Effective Python:编写高质量Python代码的90个有效方法(原书第2版) 作者简介

[美]布雷特·斯特拉金(Brett Slatkin),Google首席软件工程师,他是Google Surveys的联合技术创始人,也是PubSubHubbub协议的共同创造者之一。此外,Slatkin还发布了Google的第一个云计算产品——App Engine。早在15年前,Slatkin就开始在工作中使用Python管理Google大量的服务器群。他拥有纽约哥伦比亚大学计算机工程专业学士学位。

商品评论(0条)
暂无评论……
书友推荐
本类畅销
编辑推荐
返回顶部
中图网
在线客服