Effective Python 编写高质量Python代码的90个有效方法(原书第2版)
全新正版 假一赔十 可开发票
¥
79.47
6.2折
¥
129
全新
库存2件
作者(美)布雷特·斯拉特金
出版社机械工业出版社
ISBN9787111674023
出版时间2021-01
装帧平装
开本16开
定价129元
货号1202295138
上书时间2024-09-13
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
布雷特·斯拉特金(Brett Slatkin),Gooqle公司高级软件工程师。他是Google消费者调查项目的工程主管及联合创始人,曾从事Google App Engine的Python基础架构工作,并利用Python来管理众多的Google服务器。Slatkin也是PubSubHubbub协议的联合创始人,还用Python为GoogIe实现了针对该协议的系统。他拥有哥伦比亚大学计算机工程专业学士学位。
目录
本书赞誉
译者序
前言
致谢
第1章培养Pythonic思维
第1条查询自己使用的Python版本
第2条遵循PEP8风格指南
第3条了解bytes与str的区别
第4条用支持插值的f-string取代C风格的格式字符串与str.format方法
第5条用辅助函数取代复杂的表达式
第6条把数据结构直接拆分到多个变量里,不要专门通过下标访问
第7条尽量用enumerate取代range
第8条用zip函数同时遍历两个迭代器
第9条不要在for与while循环后面写else块
第10条用赋值表达式减少重复代码
第2章列表与字典
第11条学会对序列做切片
第12条不要在切片里同时指定起止下标与步进
第13条通过带星号的unpacking操作来捕获多个元素,不要用切片
第14条用sort方法的key参数来表示复杂的排序逻辑
第15条不要过分依赖给字典添加条目时所用的顺序
第16条用get处理键不在字典中的情况,不要使用in与KeyError
第17条用defaultdict处理内部状态中缺失的元素,而不要用setdefault
第18条学会利用__missing__构造依赖键的默认值
第3章函数
第19条不要把函数返回的多个数值拆分到三个以上的变量中
第20条遇到意外状况时应该抛出异常,不要返回None
第21条了解如何在闭包里面使用外围作用域中的变量
第22条用数量可变的位置参数给函数设计清晰的参数列表
第23条用关键字参数来表示可选的行为
第24条用None和docstring来描述默认值会变的参数
第25条用只能以关键字指定和只能按位置传入的参数来设计清晰的参数列表
第26条用functools.wraps定义函数修饰器
第4章推导与生成
第27条用列表推导取代map与filter
第28条控制推导逻辑的子表达式不要超过两个
第29条用赋值表达式消除推导中的重复代码
第30条不要让函数直接返回列表,应该让它逐个生成列表里的值
第31条谨慎地迭代函数所收到的参数
第32条考虑用生成器表达式改写数据量较大的列表推导
第33条通过yieldfrom把多个生成器连起来用
第34条不要用send给生成器注入数据
第35条不要通过throw变换生成器的状态
第36条考虑用itertools拼装迭代器与生成器
第5章类与接口
第37条用组合起来的类来实现多层结构,不要用嵌套的内置类型
第38条让简单的接口接受函数,而不是类的实例
第39条通过@classmethod多态来构造同一体系中的各类对象
第40条通过super初始化超类
第41条考虑用mix-in类来表示可组合的功能
第42条优先考虑用public属性表示应受保护的数据,不要用private属性表示
第43条自定义的容器类型应该从collections.abc继承
第6章元类与属性
第44条用纯属性与修饰器取代旧式的setter与getter方法
第45条考虑用@property实现新的属性访问逻辑,不要急着重构原有的代码
第46条用描述符来改写需要复用的@property方法
第47条针对惰性属性使用__getattr__、__getattribute__及__setattr
第48条用__init_subclass__验证子类写得是否正确
第49条用__init_subclass__记录现有的子类
第50条用__set_name__给类属性加注解
第51条优先考虑通过类修饰器来提供可组合的扩充功能,不要使用元类
第7章并发与并行
第52条用subprocess管理子进程
第53条可以用线程执行阻塞式I/O,但不要用它做并行计算
第54条利用Lock防止多个线程争用同一份数据
第55条用Queue来协调各线程之间的工作进度
第56条学会判断什么场合必须做并发
第57条不要在每次fan-out时都新建一批Thread实例
第58条学会正确地重构代码,以便用Queue做并发
第59条如果必须用线程做并发,那就考虑通过ThreadPoolExecutor实现
第60条用协程实现高并发的I/O
第61条学会用asyncio改写那些通过线程实现的I/O
第62条结合线程与协程,将代码顺利迁移到asyncio
第63条让asyncio的事件循环保持畅通,以便进一步提升程序的响应能力
第64条考虑用concurrent.futures实现真正的并行计算
第8章稳定与性能
第65条合理利用try/except/else/finally结构中的每个代码块
第66条考虑用contextlib和with语句来改写可复用的try/finally代码
第67条用datetime模块处理本地时间,不要用time模块
第68条用copyreg实现可靠的pickle操作
第69条在需要准确计算的场合,用decimal表示相应的数值
第70条先分析性能,然后再优化
第71条优先考虑用deque实现生产者-消费者队列
第72条考虑用bisect搜索已排序的序列
第73条学会使用heapq制作优先级队列
第74条考虑用memoryview与bytearray来实现无须拷贝的bytes操作
第9章测试与调试
第75条通过repr字符串输出调试信息
第76条在TestCase子类里验证相关的行为
……
内容摘要
用Python很容易就可以写出程序,所以这门语言特别流行,但Python独有的一些特征与表现手法却不是开发者能够轻松掌握的,而且其中还有许多陷阱,经常容易把人困住。本书能够帮你掌握真正的Pythonic编程方式,充分发挥Python的优势,写出健壮而高效的代码。Scott,Meyers在其名著EffectiveC++中开创了一种用简明的场景实例来讲述编程经验的方式,本书作者BrettSlatkin也沿用这种方式,向大家讲解Python的编程原则、开发技巧与便捷方案,形成90条建议并配有实用的范例代码,以便大家能够扎实地掌握Python语言。Slatkin在Google做了多年的Python基础架构工作,根据多年的经验,他在书中指出了一些很少有人注意的问题,并告诉大家如何用相应的代码范式来提升程序的稳定程度与效率。通过本书,你会了解怎样用易于理解、易于维护且易于改进的代码来完成关键的编程任务。本版不仅增加了大量的新建议,而且还根据Python开发界近些年的变化,修订了原书上一版中已有的建议。本书的关键内容包括:31条新的实用建议,这些建议涵盖Python开发的几个主要方面。对各种语句、表达式与内置类型做了详细讲解与演示。怎样写出意图清晰、便于复用而且不容易出现bug的函数。怎样更好地使用推导机制与生成器函数。怎样用类与接口准确展示相关的行为。怎样避开元类与动态属性中的一些陷阱。怎样用更高效且更清晰的方法写出并发与并行程序。怎样优化程序性能并提升代码质量。用于改进调试与测试工作的技术与内置模块。与协作开发有关的工具和经验。
— 没有更多了 —
以下为对购买帮助不大的评价