只需一步,快速开始
荣誉会员
188
2
748
您需要 登录 才可以下载或查看,没有账号?立即注册
本书介绍: 用Python编写程序,是相当容易的,所以这门语 言非常流行。但若想掌握Python所特有的优势、魅力 和表达能力,则相当困难,而且语言中还有很多隐藏 的陷阱,容易令开发者犯错。 《Effective Python(编写高质量Python代码的 59个有效方法)》可以帮你掌握真正的Pythonic编程 方式,令你能够完全发挥出Python语言的强大功能, 并写出健壮而高效的代码。Scott Meyer's在畅销书 《Effective C++》中开创了一种以使用场景为主导 的精练教学方式,本书作者布雷特·斯拉特金就以这 种方式汇聚了59条**的实践原则、开发技巧和便捷 方案,并以实用的代码范例来解释它们。 斯拉特根据自己在Google公司多年开发Python基 础架构所积累的经验,揭示Python语言中一些鲜为人 知的微妙特性,并给出了能够改善代码功能及运行效 率的习惯用法。通过本书,你能够了解到解决关键编 程任务所用的*佳方式,并学会编写易于理解、便于 维护且利于改进的代码。 作译者: 作者《Effective Python 编写高质量Python代码的59个有效方法》.(布雷特·斯拉特金).[PDF]@ckook Python&Perl美)布雷特·斯拉特金 译者:爱飞翔 Brett Slatkin,Gooqle公司高级软件工程师。他是Google消费者调查项目的工程主管及联合创始人,曾从事Google App Engine的Python基础架构工作,并利用Python来管理众多的Google服务器。Slatkin也是PubSubHubbub协议的联合创始人,还用Python为GoogIe实现了针对该协议的系统。他拥有哥伦比亚大学计算机工程专业学士学位。 本书目录: 本书赞誉 译 者 序 前 言 致 谢 第1章 用Pythonic方式来思考 第1条:确认自己所用的Python版本 第2条:遵循PEP 8风格指南 第3条:了解bytes、str与unicode的区别 第4条:用辅助函数来取代复杂的表达式 第5条:了解切割序列的办法 第6条:在单次切片操作内,不要同时指定start、end和stride 第7条:用列表推导来取代map和filter 第8条:不要使用含有两个以上表达式的列表推导 第9条:用生成器表达式来改写数据量较大的列表推导 第10条:尽量用enumerate取代range 第11条:用zip函数同时遍历两个迭代器 第12条:不要在for和while循环后面写else块 第13条:合理利用try/except/else/finally结构中的每个代码块 第2章 函数 第14条:尽量用异常来表示特殊情况,而不要返回None 第15条:了解如何在闭包里使用外围作用域中的变量 第16条:考虑用生成器来改写直接返回列表的函数 第17条:在参数上面迭代时,要多加小心 第18条:用数量可变的位置参数减少视觉杂讯 第19条:用关键字参数来表达可选的行为 第20条:用None和文档字符串来描述具有动态默认值的参数 第21条:用只能以关键字形式指定的参数来确保代码明晰 第3章 类与继承 第22条:尽量用辅助类来维护程序的状态,而不要用字典和元组 第23条:简单的接口应该接受函数,而不是类的实例 第24条:以@classmethod形式的多态去通用地构建对象 第25条:用super初始化父类 第26条:只在使用Mix-in组件制作工具类时进行多重继承 第27条:多用public属性,少用private属性 第28条:继承collections.abc以实现自定义的容器类型 第4章 元类及属性 84 第29条:用纯属性取代get和set方法 第30条:考虑用@property来代替属性重构 第31条:用描述符来改写需要复用的@property方法 第32条:用__getattr__、__getattribute__和__setattr__实现按需生成的属性 第33条:用元类来验证子类 第34条:用元类来注册子类 第35条:用元类来注解类的属性 第5章 并发及并行 第36条:用subprocess模块来管理子进程 第37条:可以用线程来执行阻塞式I/O,但不要用它做平行计算 第38条:在线程中使用Lock来防止数据竞争 第39条:用Queue来协调各线程之间的工作 第40条:考虑用协程来并发地运行多个函数 第41条:考虑用concurrent.futures来实现真正的平行计算 第6章 内置模块 第42条:用functools.wraps定义函数修饰器 第43条:考虑以contextlib和with语句来改写可复用的try/finally代码 第44条:用copyreg实现可靠的pickle操作 第45条:应该用datetime模块来处理本地时间,而不是用time模块 第46条:使用内置算法与数据结构 第47条:在重视精确度的场合,应该使用decimal 第48条:学会安装由Python开发者社区所构建的模块 第7章 协作开发 第49条:为每个函数、类和模块编写文档字符串 第50条:用包来安排模块,并提供稳固的API 第51条:为自编的模块定义根异常,以便将调用者与API相隔离 第52条:用适当的方式打破循环依赖关系 第53条:用虚拟环境隔离项目,并重建其依赖关系 第8章 部署 第54条:考虑用模块级别的代码来配置不同的部署环境 第55条:通过repr字符串来输出调试信息 第56条:用unittest来测试全部代码 第57条:考虑用pdb实现交互调试 第58条:先分析性能,然后再优化 第59条:用tracemalloc来掌握内存的使用及泄漏情况 下载地址:
使用道具 举报
终身会员[A]
22
7853
990
21
7882
1035
34
7720
979
24
7688
941
23
7791
1023
7698
998
技冠群雄
4
7584
1153
18
7924
960
本版积分规则 发表回复 回帖后跳转到最后一页
|Archiver|小黑屋|dmz社区 |网站地图
GMT+8, 2026-10-7 08:49 , Processed in 0.047983 second(s), 13 queries , Redis On.
Powered by Discuz! X3.4 Licensed
© 2001-2023 Discuz! Team.