编写高质量代码:改善Python程序的91个建议

编写高质量代码:改善Python程序的91个建议
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: ,
2014-06
版次: 1
ISBN: 9787111467045
定价: 59.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 272页
正文语种: 简体中文
  •   在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91条宝贵的建议。每条建议对应Python程序员可能会遇到的一个问题。本书不仅以建议的方式从正反两方面给出了被实践证明为十分优秀的解决方案或非常糟糕的解决方案,而且分析了问题产生的根源,会使人有一种醍醐灌顶的感觉,豁然开朗。
      《编写高质量代码:改善Python程序的91个建议》针对每个问题所选择的应用场景都非常典型,给出的建议也都与实践紧密结合。书中的每一条建议都可能在你的下一行代码、下一个应用或下一个项目中显露锋芒。建议你将本书搁置在手边,随时查阅,相信这么做一定能使你的学习和开发工作事半功倍。   张颖,资深软件开发工程师,精通Java、Python、Perl等技术,以及多种脚本语言,有多年开发经验。曾就职于阿尔卡特朗讯上海公司的LTE无线事业部,现就职于IBM CSTL,工作期间获得过多种奖励,并于2012年获得一项云计算相关的专利。 
      赖勇浩,资深软件开发工程师,自2006年起以编写Python代码为生,现已创业。在Python领域有深厚的积累,CSDN博客专家,博客浏览量超过200万。也是珠三角技术沙龙创始人之一,从2009年起担任沙龙组委,长年活跃在社区第一线,在国内Python圈子里有较高的知名度和影响力。有超过7年的游戏开发经验,擅长Python、C++等网游相关的技术,曾就职于网易等网游研发厂商;现专注于中国彩票事业,开发互联网、电话和自助终端彩票销售平台,以促进行业信息化为己任。 前 言
    第1章 引论 1
    建议1:理解Pythonic概念 1
    建议2:编写Pythonic代码 5
    建议3:理解Python与C语言的不同之处 8
    建议4:在代码中适当添加注释 10
    建议5:通过适当添加空行使代码布局更为优雅、合理 12
    建议6:编写函数的4个原则 15
    建议7:将常量集中到一个文件 18 
    第2章 编程惯用法 20
    建议8:利用assert语句来发现问题 20
    建议9:数据交换值的时候不推荐使用中间变量 22
    建议10:充分利用Lazy evaluation的特性 24
    建议11:理解枚举替代实现的缺陷 25
    建议12:不推荐使用type来进行类型检查 27
    建议13:尽量转换为浮点类型后再做除法 29
    建议14:警惕eval()的安全漏洞 31
    建议15:使用enumerate()获取序列迭代的索引和值 33
    建议16:分清==与is的适用场景 35
    建议17:考虑兼容性,尽可能使用Unicode 37
    建议18:构建合理的包层次来管理module 42 
    第3章 基础语法 45
    建议19:有节制地使用from...import语句 45
    建议20:优先使用absolute import来导入模块 48
    建议21:i+=1不等于++i 50
    建议22:使用with自动关闭资源 50
    建议23:使用else子句简化循环(异常处理) 53
    建议24:遵循异常处理的几点基本原则 55
    建议25:避免finally中可能发生的陷阱 59
    建议26:深入理解None,正确判断对象是否为空 60
    建议27:连接字符串应优先使用join而不是+ 62
    建议28:格式化字符串时尽量使用.format方式而不是% 64
    建议29:区别对待可变对象和不可变对象 68
    建议30:[]、()和{}:一致的容器初始化形式 71
    建议31:记住函数传参既不是传值也不是传引用 73
    建议32:警惕默认参数潜在的问题 77
    建议33:慎用变长参数 78
    建议34:深入理解str()和repr()的区别 80
    建议35:分清staticmethod和classmethod的适用场景 82 
    第4章 库 86
    建议36:掌握字符串的基本用法 86
    建议37:按需选择sort()或者sorted() 89
    建议38:使用copy模块深拷贝对象 92
    建议39:使用Counter进行计数统计 95
    建议40:深入掌握ConfigParser 97
    建议41:使用argparse处理命令行参数 99
    建议42:使用pandas处理大型CSV文件 103
    建议43:一般情况使用ElementTree解析XML 107
    建议44:理解模块pickle优劣 111
    建议45:序列化的另一个不错的选择——JSON 113
    建议46:使用traceback获取栈信息 116
    建议47:使用logging记录日志信息 119
    建议48:使用threading模块编写多线程程序 122
    建议49:使用Queue使多线程编程更安全 125 
    第5章 设计模式 129
    建议50:利用模块实现单例模式 129
    建议51:用mixin模式让程序更加灵活 132
    建议52:用发布订阅模式实现松耦合 134
    建议53:用状态模式美化代码 137 
    第6章 内部机制 141
    建议54:理解built-in objects 141
    建议55:__init__()不是构造方法 143
    建议56:理解名字查找机制 147
    建议57:为什么需要self参数 151
    建议58:理解MRO与多继承 154
    建议59:理解描述符机制 157
    建议60:区别__getattr__()和__getattribute__()方法 160
    建议61:使用更为安全的property 164
    建议62:掌握metaclass 169
    建议63:熟悉Python对象协议 176
    建议64:利用操作符重载实现中缀语法 179
    建议65:熟悉 Python 的迭代器协议 181
    建议66:熟悉 Python 的生成器 185
    建议67:基于生成器的协程及greenlet 188
    建议68:理解GIL的局限性 192
    建议69:对象的管理与垃圾回收 194 
    第7章 使用工具辅助项目开发 197
    建议70:从PyPI安装包 197
    建议71:使用pip和yolk安装、管理包 199
    建议72:做paster创建包 202
    建议73:理解单元测试概念 209
    建议74:为包编写单元测试 212
    建议75:利用测试驱动开发提高代码的可测性 216
    建议76:使用Pylint检查代码风格 218
    建议77:进行高效的代码审查 221
    建议78:将包发布到PyPI 224 
    第8章 性能剖析与优化 227
    建议79:了解代码优化的基本原则 227
    建议80:借助性能优化工具 228
    建议81:利用cProfile定位性能瓶颈 229
    建议82:使用memory_profiler 和 objgraph 剖析内存使用 235
    建议83:努力降低算法复杂度 237
    建议84:掌握循环优化的基本技巧 238
    建议85:使用生成器提高效率 240
    建议86:使用不同的数据结构优化性能 243
    建议87:充分利用set的优势 245
    建议88:使用multiprocessing克服GIL的缺陷 248
    建议89:使用线程池提高效率 254
    建议90:使用C/C++模块扩展提高性能 257
    建议91:使用 Cython 编写扩展模块 259
  • 内容简介:
      在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91条宝贵的建议。每条建议对应Python程序员可能会遇到的一个问题。本书不仅以建议的方式从正反两方面给出了被实践证明为十分优秀的解决方案或非常糟糕的解决方案,而且分析了问题产生的根源,会使人有一种醍醐灌顶的感觉,豁然开朗。
      《编写高质量代码:改善Python程序的91个建议》针对每个问题所选择的应用场景都非常典型,给出的建议也都与实践紧密结合。书中的每一条建议都可能在你的下一行代码、下一个应用或下一个项目中显露锋芒。建议你将本书搁置在手边,随时查阅,相信这么做一定能使你的学习和开发工作事半功倍。
  • 作者简介:
      张颖,资深软件开发工程师,精通Java、Python、Perl等技术,以及多种脚本语言,有多年开发经验。曾就职于阿尔卡特朗讯上海公司的LTE无线事业部,现就职于IBM CSTL,工作期间获得过多种奖励,并于2012年获得一项云计算相关的专利。 
      赖勇浩,资深软件开发工程师,自2006年起以编写Python代码为生,现已创业。在Python领域有深厚的积累,CSDN博客专家,博客浏览量超过200万。也是珠三角技术沙龙创始人之一,从2009年起担任沙龙组委,长年活跃在社区第一线,在国内Python圈子里有较高的知名度和影响力。有超过7年的游戏开发经验,擅长Python、C++等网游相关的技术,曾就职于网易等网游研发厂商;现专注于中国彩票事业,开发互联网、电话和自助终端彩票销售平台,以促进行业信息化为己任。
  • 目录:
    前 言
    第1章 引论 1
    建议1:理解Pythonic概念 1
    建议2:编写Pythonic代码 5
    建议3:理解Python与C语言的不同之处 8
    建议4:在代码中适当添加注释 10
    建议5:通过适当添加空行使代码布局更为优雅、合理 12
    建议6:编写函数的4个原则 15
    建议7:将常量集中到一个文件 18 
    第2章 编程惯用法 20
    建议8:利用assert语句来发现问题 20
    建议9:数据交换值的时候不推荐使用中间变量 22
    建议10:充分利用Lazy evaluation的特性 24
    建议11:理解枚举替代实现的缺陷 25
    建议12:不推荐使用type来进行类型检查 27
    建议13:尽量转换为浮点类型后再做除法 29
    建议14:警惕eval()的安全漏洞 31
    建议15:使用enumerate()获取序列迭代的索引和值 33
    建议16:分清==与is的适用场景 35
    建议17:考虑兼容性,尽可能使用Unicode 37
    建议18:构建合理的包层次来管理module 42 
    第3章 基础语法 45
    建议19:有节制地使用from...import语句 45
    建议20:优先使用absolute import来导入模块 48
    建议21:i+=1不等于++i 50
    建议22:使用with自动关闭资源 50
    建议23:使用else子句简化循环(异常处理) 53
    建议24:遵循异常处理的几点基本原则 55
    建议25:避免finally中可能发生的陷阱 59
    建议26:深入理解None,正确判断对象是否为空 60
    建议27:连接字符串应优先使用join而不是+ 62
    建议28:格式化字符串时尽量使用.format方式而不是% 64
    建议29:区别对待可变对象和不可变对象 68
    建议30:[]、()和{}:一致的容器初始化形式 71
    建议31:记住函数传参既不是传值也不是传引用 73
    建议32:警惕默认参数潜在的问题 77
    建议33:慎用变长参数 78
    建议34:深入理解str()和repr()的区别 80
    建议35:分清staticmethod和classmethod的适用场景 82 
    第4章 库 86
    建议36:掌握字符串的基本用法 86
    建议37:按需选择sort()或者sorted() 89
    建议38:使用copy模块深拷贝对象 92
    建议39:使用Counter进行计数统计 95
    建议40:深入掌握ConfigParser 97
    建议41:使用argparse处理命令行参数 99
    建议42:使用pandas处理大型CSV文件 103
    建议43:一般情况使用ElementTree解析XML 107
    建议44:理解模块pickle优劣 111
    建议45:序列化的另一个不错的选择——JSON 113
    建议46:使用traceback获取栈信息 116
    建议47:使用logging记录日志信息 119
    建议48:使用threading模块编写多线程程序 122
    建议49:使用Queue使多线程编程更安全 125 
    第5章 设计模式 129
    建议50:利用模块实现单例模式 129
    建议51:用mixin模式让程序更加灵活 132
    建议52:用发布订阅模式实现松耦合 134
    建议53:用状态模式美化代码 137 
    第6章 内部机制 141
    建议54:理解built-in objects 141
    建议55:__init__()不是构造方法 143
    建议56:理解名字查找机制 147
    建议57:为什么需要self参数 151
    建议58:理解MRO与多继承 154
    建议59:理解描述符机制 157
    建议60:区别__getattr__()和__getattribute__()方法 160
    建议61:使用更为安全的property 164
    建议62:掌握metaclass 169
    建议63:熟悉Python对象协议 176
    建议64:利用操作符重载实现中缀语法 179
    建议65:熟悉 Python 的迭代器协议 181
    建议66:熟悉 Python 的生成器 185
    建议67:基于生成器的协程及greenlet 188
    建议68:理解GIL的局限性 192
    建议69:对象的管理与垃圾回收 194 
    第7章 使用工具辅助项目开发 197
    建议70:从PyPI安装包 197
    建议71:使用pip和yolk安装、管理包 199
    建议72:做paster创建包 202
    建议73:理解单元测试概念 209
    建议74:为包编写单元测试 212
    建议75:利用测试驱动开发提高代码的可测性 216
    建议76:使用Pylint检查代码风格 218
    建议77:进行高效的代码审查 221
    建议78:将包发布到PyPI 224 
    第8章 性能剖析与优化 227
    建议79:了解代码优化的基本原则 227
    建议80:借助性能优化工具 228
    建议81:利用cProfile定位性能瓶颈 229
    建议82:使用memory_profiler 和 objgraph 剖析内存使用 235
    建议83:努力降低算法复杂度 237
    建议84:掌握循环优化的基本技巧 238
    建议85:使用生成器提高效率 240
    建议86:使用不同的数据结构优化性能 243
    建议87:充分利用set的优势 245
    建议88:使用multiprocessing克服GIL的缺陷 248
    建议89:使用线程池提高效率 254
    建议90:使用C/C++模块扩展提高性能 257
    建议91:使用 Cython 编写扩展模块 259
查看详情
12
系列丛书 / 更多
编写高质量代码:改善Python程序的91个建议
Effective Python:编写高质量Python代码的59个有效方法
[美]布雷特·斯拉特金 著;爱飞翔 译
编写高质量代码:改善Python程序的91个建议
编写高质量代码:改善Objective-C程序的61个建议
刘一道 著
编写高质量代码:改善Python程序的91个建议
Effective Ruby:改善Ruby程序的48条建议
[美]彼得 J.琼斯 著;刘璐、杨政权、秦五一、孟樊超 译
编写高质量代码:改善Python程序的91个建议
Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法
[英]Matt Galloway 著;爱飞翔 译
编写高质量代码:改善Python程序的91个建议
Effective SQL:编写高质量SQL语句的61个有效方法
[法]约翰· L. 维卡斯 著;文浩 译
编写高质量代码:改善Python程序的91个建议
Effective Debugging:软件和系统调试的66个有效方法
爱飞翔 译
编写高质量代码:改善Python程序的91个建议
Effective JavaScript:编写高质量JavaScript代码的68个有效方法
[美]David Herman 著;黄博文、喻杨 译
编写高质量代码:改善Python程序的91个建议
编写高质量代码:改善C程序代码的125个建议
马伟 著
相关图书 / 更多
编写高质量代码:改善Python程序的91个建议
编写有效用例
Cockburn 著
编写高质量代码:改善Python程序的91个建议
编写安全的代码2(第二版)
Michael Howard
编写高质量代码:改善Python程序的91个建议
编写高质量代码:改善C程序代码的125个建议
马伟 著
编写高质量代码:改善Python程序的91个建议
编写高质量代码:改善C#程序的157个建议
陆敏技 著
编写高质量代码:改善Python程序的91个建议
编写有效用例
科伯恩、王雷 著
编写高质量代码:改善Python程序的91个建议
编写高质量代码:改善Java程序的151个建议
秦小波 著
编写高质量代码:改善Python程序的91个建议
编写整洁的Python代码
[西]马里亚诺·阿那亚(Mariano Anaya)
编写高质量代码:改善Python程序的91个建议
编写测试平台
伯杰龙
编写高质量代码:改善Python程序的91个建议
编写安全的代码
[美]霍华德(Howard M.) 著;程永敬 译
编写高质量代码:改善Python程序的91个建议
编写高性能的.NET代码
戴旭 译
编写高质量代码:改善Python程序的91个建议
编写移动代码:构建移动应用的基础软件工程
[美]萨勒玛 著;立达人移动工作组 译
编写高质量代码:改善Python程序的91个建议
编写信息安全策略
[美]巴曼著段海新 译
您可能感兴趣 / 更多
编写高质量代码:改善Python程序的91个建议
电梯工程制图
张颖、刘枫、王扣建、高利平、朱年华 编
编写高质量代码:改善Python程序的91个建议
国际市场营销()
张颖、金龙布 编
编写高质量代码:改善Python程序的91个建议
高等数学上册
张颖、周华、张爱华 著
编写高质量代码:改善Python程序的91个建议
外贸英语听力2
张颖、徐美荣 编
编写高质量代码:改善Python程序的91个建议
公共政策翻译(第4辑2020)
张颖、鲍川运 著
编写高质量代码:改善Python程序的91个建议
商务与社交礼仪
张颖、唐娇 编
编写高质量代码:改善Python程序的91个建议
健康评估
张颖、王刚、辛先贵 编
编写高质量代码:改善Python程序的91个建议
美国加州大学尔湾分校图书馆中文古籍目录/海外中文古籍总目
张颖、[美]倪莉 编
编写高质量代码:改善Python程序的91个建议
旅游市场营销(第二版)/21世纪高职高专教学改革规划教材·旅游类
张颖、伍新蕾、朱智、胡晓晶 编
编写高质量代码:改善Python程序的91个建议
运动改变生活/求知阶梯系列/青少年百科图书馆
张颖、黄运森、黄迅 著
编写高质量代码:改善Python程序的91个建议
大型主机CICS中间件基础教程
张颖、施嵘 等编著;李六旬 主编
编写高质量代码:改善Python程序的91个建议
大型主机DB2数据库基础教程
张颖、王亚娟 等编著;李六旬 主编