Effective Python:编写高质量Python代码的59个有效方法

Effective Python:编写高质量Python代码的59个有效方法
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] ,
2016-01
版次: 1
ISBN: 9787111523550
定价: 59.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 210页
字数: 350千字
正文语种: 简体中文
原版书名: Effective Python
178人买过
  • 本书作者BrettSlatkin以使用场景为主导的精练教学方式,汇聚了59条优秀的实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。作者根据自己在Google公司多年开发Python基础架构所积累的经验,揭示了Python语言中一些鲜为人知的微妙特性,并给出了能够改善代码功能及运行效率的习惯用法。通过本书,你能够了解到解决关键编程任务所用的佳方式,并学会编写易于理解、便于维护且利于改进的代码。本书可以帮你掌握真正的Pythonic编程方式,令你能够完*发挥出Python语言的强大功能,并写出健壮而高效的代码。ScottMeyers在畅销书《EffectiveC++》中开创了一种以使用场景为主导的精练教学方式,本书作者BrettSlatkin就以这种方式汇聚了59条优秀的实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。??Slatkin根据自己在Google公司多年开发Python基础架构所积累的经验,揭示Python语言中一些鲜为人知的微妙特性,并给出了能够改善代码功能及运行效率的习惯用法。通过本书,你能够了解到解决关键编程任务所用的方式,并学会编写易于理解、便于维护且利于改进的代码。本书核心内容包括:????????●涵盖Python3.x及Python2.x主要应用领域的实用指南,以及与之配套的详细解释及代码范例。????●??????与函数相关的编程建议,这些建议有助于我们写出意图清晰、便于复用且缺陷较少的函数。????????●如何准确地表达类与对象的行为。????●在使用元类和动态属性时,如何避免错误的用法。????●更为高效的并发及并行方式。????●与Python内置模块相关的编程技巧和习惯用法。????●多人协作时所用的开发工具和实践方式。????●旨在改善代码质量和程序性能的调试、测试与优化方案。??????????
    ????BrettSlatkin??????Google公司高级软件工程师。他是Google消费者调查项目的工程主管及联合创始人,曾从事GoogleAppEngine的Python基础架构工作,并利用Python来管理众多的Google服务器。Slatkin也是PubSubHubbub协议的???联合创始人,还用Python为Google实现了针对该协议的系统。他拥有哥伦比亚大学计算机工程专业学士学位。???????
    本书赞誉
    译者序
    前  言
    致  谢
    第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
  • 内容简介:
    本书作者BrettSlatkin以使用场景为主导的精练教学方式,汇聚了59条优秀的实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。作者根据自己在Google公司多年开发Python基础架构所积累的经验,揭示了Python语言中一些鲜为人知的微妙特性,并给出了能够改善代码功能及运行效率的习惯用法。通过本书,你能够了解到解决关键编程任务所用的佳方式,并学会编写易于理解、便于维护且利于改进的代码。本书可以帮你掌握真正的Pythonic编程方式,令你能够完*发挥出Python语言的强大功能,并写出健壮而高效的代码。ScottMeyers在畅销书《EffectiveC++》中开创了一种以使用场景为主导的精练教学方式,本书作者BrettSlatkin就以这种方式汇聚了59条优秀的实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。??Slatkin根据自己在Google公司多年开发Python基础架构所积累的经验,揭示Python语言中一些鲜为人知的微妙特性,并给出了能够改善代码功能及运行效率的习惯用法。通过本书,你能够了解到解决关键编程任务所用的方式,并学会编写易于理解、便于维护且利于改进的代码。本书核心内容包括:????????●涵盖Python3.x及Python2.x主要应用领域的实用指南,以及与之配套的详细解释及代码范例。????●??????与函数相关的编程建议,这些建议有助于我们写出意图清晰、便于复用且缺陷较少的函数。????????●如何准确地表达类与对象的行为。????●在使用元类和动态属性时,如何避免错误的用法。????●更为高效的并发及并行方式。????●与Python内置模块相关的编程技巧和习惯用法。????●多人协作时所用的开发工具和实践方式。????●旨在改善代码质量和程序性能的调试、测试与优化方案。??????????
  • 作者简介:
    ????BrettSlatkin??????Google公司高级软件工程师。他是Google消费者调查项目的工程主管及联合创始人,曾从事GoogleAppEngine的Python基础架构工作,并利用Python来管理众多的Google服务器。Slatkin也是PubSubHubbub协议的???联合创始人,还用Python为Google实现了针对该协议的系统。他拥有哥伦比亚大学计算机工程专业学士学位。???????
  • 目录:
    本书赞誉
    译者序
    前  言
    致  谢
    第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
查看详情
系列丛书 / 更多
Effective Python:编写高质量Python代码的59个有效方法
Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法
[英]Matt Galloway 著;爱飞翔 译
Effective Python:编写高质量Python代码的59个有效方法
编写高质量代码:改善Objective-C程序的61个建议
刘一道 著
Effective Python:编写高质量Python代码的59个有效方法
Effective JavaScript:编写高质量JavaScript代码的68个有效方法
[美]David Herman 著;黄博文、喻杨 译
Effective Python:编写高质量Python代码的59个有效方法
Effective Ruby:改善Ruby程序的48条建议
[美]彼得 J.琼斯 著;刘璐、杨政权、秦五一、孟樊超 译
Effective Python:编写高质量Python代码的59个有效方法
编写高质量代码:改善Python程序的91个建议
张颖、赖勇浩 著
Effective Python:编写高质量Python代码的59个有效方法
编写高质量代码:改善C程序代码的125个建议
马伟 著
Effective Python:编写高质量Python代码的59个有效方法
Effective SQL:编写高质量SQL语句的61个有效方法
[法]约翰· L. 维卡斯 著;文浩 译
Effective Python:编写高质量Python代码的59个有效方法
Effective Debugging:软件和系统调试的66个有效方法
爱飞翔 译
相关图书 / 更多
Effective Python:编写高质量Python代码的59个有效方法
EffectiveTeamwork:PracticalLessonsfromOrganizationalResearch
Michael A. West 著
Effective Python:编写高质量Python代码的59个有效方法
Effective数据科学基础设施
[芬兰]维莱·图洛斯(Ville Tuulos)著 郭涛 译
Effective Python:编写高质量Python代码的59个有效方法
Effective TypeScript:精进TypeScript代码的62个实践方法
[美]丹·范德卡姆(Dan Vanderkam);王瑞鹏;董强
Effective Python:编写高质量Python代码的59个有效方法
EffectiveLeadershipinAdventureProgramming
Simon Priest 著
Effective Python:编写高质量Python代码的59个有效方法
Effective软件测试
[荷兰]毛里西奥·阿尼什(Maurício Aniche)著 朱少民 李洁 张元 译
Effective Python:编写高质量Python代码的59个有效方法
Effective Python:编写高质量Python代码的90个有效方法(原书第2版)
[美]布雷特·斯拉特金(Brett Slatkin)
Effective Python:编写高质量Python代码的59个有效方法
Effective C中文版
[美]罗伯特·C. 西科德(Robert C. Seacord)
Effective Python:编写高质量Python代码的59个有效方法
Effective Python:改善Python程序的90个建议 (第2版)(英文版)
[美]Brett Slatkin(布雷特·斯莱特金)
Effective Python:编写高质量Python代码的59个有效方法
EffectiveSupervision:SupportingtheArtandScienceofTeaching
Robert J. Marzano 著
Effective Python:编写高质量Python代码的59个有效方法
EffectiveHelpingInterviewingandCounselingT
Barbara F. Okun、Ricki E. Kantrowitz 著
Effective Python:编写高质量Python代码的59个有效方法
Effective Cybersecurity 中文版
[美]威廉·斯托林斯(William Stallings)
Effective Python:编写高质量Python代码的59个有效方法
EffectiveWritinginPsychology
Bernard C. Beins、Agatha M. Beins 著
您可能感兴趣 / 更多
Effective Python:编写高质量Python代码的59个有效方法
宇宙视觉史:从宇宙大爆炸到时间的尽头
[美]查尔斯·刘 著;高爽 译者;[美]马克西姆· 马洛维奇科 绘;未读 出品
Effective Python:编写高质量Python代码的59个有效方法
写出我心 普通人如何通过写作表达自己(平装本)
[美]娜塔莉·戈德堡(Natalie Goldberg)
Effective Python:编写高质量Python代码的59个有效方法
写出我心3 写作疗愈的真正秘密
[美]娜塔莉·戈德堡(Natalie Goldberg)
Effective Python:编写高质量Python代码的59个有效方法
神套路:为什么我们总被带节奏(狂热与网红时代醍醐灌顶之作,教给普通人安身立命的不二法门!)
[美]阿里·阿莫萨维 著;[哥伦比亚]亚历杭德罗·希拉尔多 绘
Effective Python:编写高质量Python代码的59个有效方法
阿伦森自传
[美]埃利奥特·阿伦森(Elliot Aronson) 著;沈捷 译;湛庐文化 出品
Effective Python:编写高质量Python代码的59个有效方法
街头官僚:公共服务中的个人困境
[美]迈克尔·李普斯基(Michael Lipsky)
Effective Python:编写高质量Python代码的59个有效方法
史前至蒙古帝国时期的内欧亚大陆史
[美]大卫·克里斯蒂安 著;潘玲 译;杨建华 校
Effective Python:编写高质量Python代码的59个有效方法
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
Effective Python:编写高质量Python代码的59个有效方法
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
Effective Python:编写高质量Python代码的59个有效方法
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
Effective Python:编写高质量Python代码的59个有效方法
自律我也能做到(全9册)
[美]康妮·科维尔·米勒 著;[阿根廷]维多利亚·阿萨纳利 绘
Effective Python:编写高质量Python代码的59个有效方法
你在等什么?
[美]斯科特·明钦 著;[中]易万 译;[美]马特 ·斐兰 绘