书籍详情
Python编程实战:运用设计模式、并发和程序库创建高质量程序
作者:(美)Mark Summerfield 著; 李宝珅(笔名:爱飞翔)译
出版社:机械工业出版社
出版时间:2014-08-01
ISBN:9787111473947
定价:¥69.00
购买这本书可以去
内容简介
《Python编程实战:运用设计模式、并发和程序库创建高质量程序》由Python开发者社区知名技术专家Mark Summerfield亲笔撰写,全球资深Python专家Doug Hellmann作序鼎力推荐,是Python领域最有影响力的著作之一。书中通过大量实用的范例代码和三个完整的案例研究,全面而系统地讲解了如何运用设计模式来规划代码结构,如何通过并发与Cython等技术提升代码执行速度,以及如何利用各种Python程序库来快速开发具体的应用程序和游戏。《Python编程实战:运用设计模式、并发和程序库创建高质量程序》共8章:第1~3章分别介绍了Python的几种设计模式(创建型设计模式、结构型设计模式和行为型设计模式);第4章和第5章详细讲解了Python的高级并发技术以及Cython的用法;第6章具体介绍了Python的高级网络编程;第7章阐释了如何用Tkinter开发图形用户界面;第8章讲解了如何用OpenGL绘制3D图形。
作者简介
Mark Summerfield Qtrac公司创始人,独立的培训讲师、顾问、技术编辑,Go、Python、C++、Qt和PyQt方面的技术作家。他撰写了大量畅销图书,包括《Rapid GUI Programming with Python and Qt》、《C++ GUI Programming with Qt 4, Second Edition》(与Jasmin Blanchette合著)、《Programming in Python 3, Second Edition》、《Advanced Qt Programming》和《Programming in Go》等。爱飞翔,资深软件开发工程师,擅长Web开发、移动开发和游戏开发,有10余年开发经验,曾主导和参与了多个手机游戏和手机软件项目的开发,经验十分丰富。业余爱好文学和历史,有一定的文学造诣。翻译并出版了《Android游戏开发实践指南》、《测试驱动的iOS开发》、《HTML5 Canvas核心技术:图形、动画与游戏开发》、《NoSQL精粹》和《JavaScript应用开发实践指南》等书。
目录
译者序
序
前言
第1章 Python的创建型设计模式 1
1.1 抽象工厂模式 1
1.1.1 经典的抽象工厂模式 2
1.1.2 Python风格的抽象工厂模式 4
1.2 建造者模式 6
1.3 工厂方法模式 12
1.4 原型模式 18
1.5 单例模式 19
第2章 Python的结构型设计模式 21
2.1 适配器模式 21
2.2 桥接模式 26
2.3 组合模式 31
2.3.1 常规的“组合体/非组合体”式层级 32
2.3.2 只用一个类来表示组合体与非组合体 35
2.4 修饰器模式 37
2.4.1 函数修饰器与方法修饰器 38
2.4.2 类修饰器 42
2.5 外观模式 47
2.6 享元模式 52
2.7 代理模式 54
第3章 Python的行为型设计模式 58
3.1 责任链模式 58
3.1.1 用常规方式实现责任链 59
3.1.2 基于协程的责任链 60
3.2 命令模式 63
3.3 解释器模式 66
3.3.1 用eval()函数求表达式的值 67
3.3.2 用exec()函数执行代码 70
3.3.3 用子进程执行代码 73
3.4 迭代器模式 76
3.4.1 通过序列协议实现迭代器 77
3.4.2 通过双参数iter()函数实现迭代器 77
3.4.3 通过迭代器协议实现迭代器 79
3.5 中介者模式 81
3.5.1 用常规方式实现中介者 82
3.5.2 基于协程的中介者 85
3.6 备忘录模式 87
3.7 观察者模式 87
3.8 状态模式 91
3.8.1 用同一套方法来处理不同的状态 93
3.8.2 用不同的方法来处理不同的状态 94
3.9 策略模式 95
3.10 模板方法模式 98
3.11 访问者模式 101
3.12 案例研究:图像处理程序包 102
3.12.1 通用的图像处理模块 103
3.12.2 Xpm模块概述 111
3.12.3 PNG包装器模块 113
第4章 Python的高级并发技术 116
4.1 计算密集型并发 119
4.1.1 用队列及多进程实现并发 121
4.1.2 用Future及多进程实现并发 126
4.2 I/O密集型并发 128
4.2.1 用队列及线程实现并发 129
4.2.2 用Future及线程实现并发 134
4.3 案例研究:并发式GUI应用程序 136
4.3.1 创建GUI 138
4.3.2 编写与工作线程配套的ImageScale模块 144
4.3.3 在GUI中显示图像处理进度 146
4.3.4 处理GUI程序终止时的相关事宜 148
第5章 扩充Python 150
5.1 用ctypes访问C程序库 151
5.2 Cython的用法 159
5.2.1 用Cython访问C程序库 159
5.2.2 编写Cython模块以进一步提升程序执行速度 164
5.3 案例研究:用Cython优化图像处理程序包 169
第6章 Python高级网络编程 173
6.1 编写XML-RPC应用程序 174
6.1.1 数据包装器 174
6.1.2 编写XML-RPC服务器 178
6.1.3 编写XML-RPC客户端 180
6.2 编写RPyC应用程序 188
6.2.1 线程安全的数据包装器 188
6.2.2 编写RPyC服务器 193
6.2.3 编写RPyC客户端 195
第7章 用Tkinter开发图形用户界面 199
7.1 Tkinter简介 201
7.2 用Tkinter创建对话框 203
7.2.1 创建对话框式应用程序 205
7.2.2 创建应用程序中的对话框 212
7.3 用Tkinter创建主窗口式应用程序 220
7.3.1 创建主窗口 222
7.3.2 创建菜单 224
7.3.3 创建带计分器的状态栏 226
第8章 用OpenGL绘制3D图形 229
8.1 用透视投影法创建场景 230
8.1.1 用PyOpenGL编写Cylinder程序 231
8.1.2 用pyglet编写Cylinder程序 235
8.2 用正交投影法制作游戏 238
8.2.1 绘制游戏场景 240
8.2.2 判断用户是否选中了场景里的物体 242
8.2.3 处理用户操作 244
附录A 结束语 248
附录B 参考书目摘录 250
序
前言
第1章 Python的创建型设计模式 1
1.1 抽象工厂模式 1
1.1.1 经典的抽象工厂模式 2
1.1.2 Python风格的抽象工厂模式 4
1.2 建造者模式 6
1.3 工厂方法模式 12
1.4 原型模式 18
1.5 单例模式 19
第2章 Python的结构型设计模式 21
2.1 适配器模式 21
2.2 桥接模式 26
2.3 组合模式 31
2.3.1 常规的“组合体/非组合体”式层级 32
2.3.2 只用一个类来表示组合体与非组合体 35
2.4 修饰器模式 37
2.4.1 函数修饰器与方法修饰器 38
2.4.2 类修饰器 42
2.5 外观模式 47
2.6 享元模式 52
2.7 代理模式 54
第3章 Python的行为型设计模式 58
3.1 责任链模式 58
3.1.1 用常规方式实现责任链 59
3.1.2 基于协程的责任链 60
3.2 命令模式 63
3.3 解释器模式 66
3.3.1 用eval()函数求表达式的值 67
3.3.2 用exec()函数执行代码 70
3.3.3 用子进程执行代码 73
3.4 迭代器模式 76
3.4.1 通过序列协议实现迭代器 77
3.4.2 通过双参数iter()函数实现迭代器 77
3.4.3 通过迭代器协议实现迭代器 79
3.5 中介者模式 81
3.5.1 用常规方式实现中介者 82
3.5.2 基于协程的中介者 85
3.6 备忘录模式 87
3.7 观察者模式 87
3.8 状态模式 91
3.8.1 用同一套方法来处理不同的状态 93
3.8.2 用不同的方法来处理不同的状态 94
3.9 策略模式 95
3.10 模板方法模式 98
3.11 访问者模式 101
3.12 案例研究:图像处理程序包 102
3.12.1 通用的图像处理模块 103
3.12.2 Xpm模块概述 111
3.12.3 PNG包装器模块 113
第4章 Python的高级并发技术 116
4.1 计算密集型并发 119
4.1.1 用队列及多进程实现并发 121
4.1.2 用Future及多进程实现并发 126
4.2 I/O密集型并发 128
4.2.1 用队列及线程实现并发 129
4.2.2 用Future及线程实现并发 134
4.3 案例研究:并发式GUI应用程序 136
4.3.1 创建GUI 138
4.3.2 编写与工作线程配套的ImageScale模块 144
4.3.3 在GUI中显示图像处理进度 146
4.3.4 处理GUI程序终止时的相关事宜 148
第5章 扩充Python 150
5.1 用ctypes访问C程序库 151
5.2 Cython的用法 159
5.2.1 用Cython访问C程序库 159
5.2.2 编写Cython模块以进一步提升程序执行速度 164
5.3 案例研究:用Cython优化图像处理程序包 169
第6章 Python高级网络编程 173
6.1 编写XML-RPC应用程序 174
6.1.1 数据包装器 174
6.1.2 编写XML-RPC服务器 178
6.1.3 编写XML-RPC客户端 180
6.2 编写RPyC应用程序 188
6.2.1 线程安全的数据包装器 188
6.2.2 编写RPyC服务器 193
6.2.3 编写RPyC客户端 195
第7章 用Tkinter开发图形用户界面 199
7.1 Tkinter简介 201
7.2 用Tkinter创建对话框 203
7.2.1 创建对话框式应用程序 205
7.2.2 创建应用程序中的对话框 212
7.3 用Tkinter创建主窗口式应用程序 220
7.3.1 创建主窗口 222
7.3.2 创建菜单 224
7.3.3 创建带计分器的状态栏 226
第8章 用OpenGL绘制3D图形 229
8.1 用透视投影法创建场景 230
8.1.1 用PyOpenGL编写Cylinder程序 231
8.1.2 用pyglet编写Cylinder程序 235
8.2 用正交投影法制作游戏 238
8.2.1 绘制游戏场景 240
8.2.2 判断用户是否选中了场景里的物体 242
8.2.3 处理用户操作 244
附录A 结束语 248
附录B 参考书目摘录 250
猜您喜欢