本书主要关注了四个方面,即:优雅编码设计模式、通过并发和编译后的python(cython)使处理速度更快、高层联网和图像。书中展示了在python中已经过验证有用的设计模式,用专家级的代码阐释了这些设计模式,并解释了为什么一些与面向对象设计相关的模式和python均有关联。
《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图形。
译者序
序
前言
第1章python的创建型设计模式
1.1抽象工厂模式
1.1.1经典的抽象工厂模式
1.1.2python风格的抽象工厂模式
1.2建造者模式
1.3工厂方法模式
1.4原型模式
1.5单例模式
第2章python的结构型设计模式
2.1适配器模式
2.2桥接模式
2.3组合模式
2.3.1常规的“组合体/非组合体”式层级
2.3.2只用一个类来表示组合体与非组合体
2.4修饰器模式
2.4.1函数修饰器与方法修饰器
2.4.2类修饰器
2.5外观模式
2.6享元模式
2.7代理模式
第3章python的行为型设计模式
3.1责任链模式
3.1.1用常规方式实现责任链
3.1.2基于协程的责任链
3.2命令模式
3.3解释器模式
3.3.1用eval()函数求表达式的值
3.3.2用exec()函数执行代码
3.3.3用子进程执行代码
3.4迭代器模式
3.4.1通过序列协议实现迭代器
3.4.2通过双参数iter()函数实现迭代器
3.4.3通过迭代器协议实现迭代器
3.5中介者模式
3.5.1用常规方式实现中介者
3.5.2基于协程的中介者
3.6备忘录模式
3.7观察者模式
3.8状态模式
3.8.1用同一套方法来处理不同的状态
3.8.2用不同的方法来处理不同的状态
3.9策略模式
3.10模板方法模式
3.11访问者模式
3.12案例研究:图像处理程序包
3.12.1通用的图像处理模块
3.12.2xpm模块概述
3.12.3png包装器模块
第4章python的高级并发技术
4.1计算密集型并发
4.1.1用队列及多进程实现并发
4.1.2用future及多进程实现并发
4.2i/o密集型并发
4.2.1用队列及线程实现并发
4.2.2用future及线程实现并发
4.3案例研究:并发式gui应用程序
4.3.1创建gui
4.3.2编写与工作线程配套的imagescale模块
4.3.3在gui中显示图像处理进度
4.3.4处理gui程序终止时的相关事宜
第5章扩充python
5.1用ctypes访问c程序库
5.2cython的用法
5.2.1用cython访问c程序库
5.2.2编写cython模块以进一步提升程序执行速度
5.3案例研究:用cython优化图像处理程序包
第6章python高级网络编程
6.1编写xml-rpc应用程序
6.1.1数据包装器
6.1.2编写xml-rpc服务器
6.1.3编写xml-rpc客户端
6.2编写rpyc应用程序
6.2.1线程安全的数据包装器
6.2.2编写rpyc服务器
6.2.3编写rpyc客户端
第7章用tkinter开发图形用户界面
7.1tkinter简介
7.2用tkinter创建对话框
7.2.1创建对话框式应用程序
7.2.2创建应用程序中的对话框
7.3用tkinter创建主窗口式应用程序
7.3.1创建主窗口
7.3.2创建菜单
7.3.3创建带计分器的状态栏
第8章用opengl绘制3d图形
8.1用透视投影法创建场景
8.1.1用pyopengl编写cylinder程序
8.1.2用pyglet编写cylinder程序
8.2用正交投影法制作游戏
8.2.1绘制游戏场景
8.2.2判断用户是否选中了场景里的物体
8.2.3处理用户操作
附录a结束语
附录b参考书目摘录
Mark Summerfield Qtrac公司创始人,独立的培训讲师、顾问、技术编辑,Go、Python、C++、Qt和PyQt方面的技术作家。他的著作包括RapidGUI Programming with Python and Qt、C++ GUI Programming with Qt4(与Jasmin Blanchette合著)、Programming in Python 3和Advanced QtProgramming等。 资深软件开发工程师,擅长Web开发、移动开发和游戏开发,有10余年开发经验,曾主导和参与了多个手初游戏和手机软件项目的开发,经验十分丰富。业余爱好文学和历史,有一定的文 学造诣。翻译并出版了《And roid游戏开发实践指南》、《测试驱动的iOS开发》、《HTML5 Canvas核心技术:图形、动画与游戏开发》和《JavaScript应用开发实践指南》等书。
《电子商务概论(第2版)》内容简介:本书从应用与管理的角度,针对电子商务专业及其他经济管理类专业学生的特点,按照电子商务知识
《Java程序员面试秘笈》内容简介:Java程序员目前就业形势较好,因为Java的应用太广泛了,从网页开发到手机安卓开发,都离不开Java
AppropriateforcoursestitledComputerNetworkingorIntroductiontoNetworkingatboththe...
DiscoverhoweasyitistodesignkillerinterfacesandresponsivewebsiteswiththeBootstrap...
信号检测与估计理论是随机信号统计处理的基础。本书在扼要复习信号检测与估计理论基础知识后,首先论述信号的统计检测理论和信号
《从公司到国家:美国制度困局的历史解释》内容简介:本书通过对美国制度的建立进行探源与复盘,提出了美国是“公司型国家”的观点
《明哥聊求职》内容简介:李明编著的《明哥聊求职》旨在帮助初入职场的年轻人了解求职的方方面面,从做好面试前的准备工作到如何编
《我们的朋友胡适之》内容简介:“我的朋友胡适之”,曾经是民国时许多人的口头禅。他的名望之高、人缘之好、影响之大可见一斑。这
《体育赛事信息化与网络安全》内容简介:大型综合性体育赛事的信息系统与通信网络的安全,与其他活动有许多不同之处。体育赛事信息
《看图自学吉他》内容简介:这是一本吉他基础教程,主要针对吉他初学者。在基础知识部分从最基本的吉他调弦、琴弦安装、吉他选购、
《华为增长法》内容简介:自1987年创立以来,华为保持了30年快速增长的奇迹。所有企业面临的增长困境,华为在发展的过程中也同样遇
本书作为构建移动应用程序和云服务的实用向导,对于那些渴望利用云服务(例如AmazonWebServices)的强大能力作为支持,为移动设备创
本书是日本著名生活家居品牌无印良品推出的“无印良品的生活方式”系列概念书之一。本书的关键词为“要素”——一个围绕居家生活
《赛雷三分钟漫画三国演义3》内容简介:电影式全场景,爆笑还原三国演义!超立体,超生动,超涨知识!《三国演义》可以说是中国较为
《图解室内设计(第2版)》由程大锦教授与科基·宾格利共同编写的,现已修订、扩充升级至第二版。通过兼具实用性与艺术美感的插图,
基于社交问答平台的用户知识贡献行为与服务优化 内容简介 《基于社交问答平台的用户知识贡献行为与服务优化》围绕用户的社交问答需求,从社交问答平台发展与平台架构出发...
《城和市的语言:城市规划图解辞典》以文字和图片中的每个单词、名称或概念的字母为顺序进行编撰,同时以简洁的传记体介绍城市场所
《客厅设计广场(第2季):欧式客厅》内容简介:客厅是家庭聚会、休闲的重要场所,是能充分体现居室主人个性的居室空间,也是访客停
錢研發的高科技產品,為何九五%都是賠錢貨?錢景?還是陷阱?九組關鍵準則,判讀最值得投資的高科技產業。對創造、投資新科技的
约翰•佐雷尔出生于伦敦,在弘赛艺术学院(HornseyCollegeofArt)学习艺术与设计。他十九岁就开始了其设计事业。在他四十余年的设