本书主要关注了四个方面,即:优雅编码设计模式、通过并发和编译后的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版) 本书特色 根据人事部、信息产业部文件,计算机技术与软件专业技术资料考试纳入全国专业技术人员职业资格证书制度的统一规划。通过考...
《解密·强直性脊柱炎》内容简介:本书从疾病的认识、诊断、治疗以及预防与康复等四个方面,对强直性脊柱炎这一困惑医患双方的医学
WEB+DBPRESS是日本主流的计算机技术杂志,旨在帮助程序员更实时、深入地了解前沿技术,扩大视野,提升技能。内容侧重于Web开发的
在台灣先行出版的《龍捲風暴》《大金剛法則》,事實上是本書《跨越鴻溝》的續作。但由於本書初版於1991年問世,書中所舉個案與例
《丹尼尔·希利斯讲计算机》内容简介:虽然计算机技术及应用以及编程技术都取得了巨大进步,对社会产生的影响也远远超出了预言家的
《天下》全景凸现通信业二十年嬗变,透视移动、电信、联通、网通等电信企业的内幕,昭示“战国七雄”的市场博弈之道。一男三女,
《刑辩私塾》内容简介:本书旨在通过对个案的办理过程的复盘、思考和总结,传授具体的刑事辩护理念、思维和技术。本书更多的是启发
LearnJavaScriptandjQueryanicerwayThisfull-colorbookadoptsavisualapproachtoteachi...
《人类学讲义稿》内容简介:◎反思“东腔西调”学科史的人类学本土叙述 ◎《人类学讲义稿》打破了只是简单地罗列概念和事例的传统教
《包豪斯:大师和学生们》由弗兰克•惠特福德等所著,以时间为主线,通过在包豪斯学习和工作过的大师级人物的视角,精心梳理了包豪
网络共和国 本书特色 东方编译所译丛。 科技的发展越来越展现出双刃剑的特征,凯斯·桑斯坦在本书中即探讨了网络对个人行为以及整个社会的影响:信息随时获取同时带来“...
本书作为一本专门针对网页美工的书籍,在阐述网页设计理念的基础上,以生动的实例引导读者深入地掌握网页的美工技术,使读者在短
《无穷的远方,无数的人们,都和我有关》内容简介:《无穷的远方,无数的人们,都和我有关:鲁迅散文随笔精选》由著名学者、鲁迅研
FloTHERM软件基础与应用实例 本书特色 李波编写的《flotherm软件基础与应用实例》分为软件基础入门与应用实例两大部分,共12章:第1~9章为软件基础...
《活着,就要无声炸裂》内容简介:这是一本让年轻人小宇宙爆发的力量之书。人气博主南顾用自己的亲身经历写下颠沛流离的青春、肆意
《中国特色消费经济理论与实证研究》内容简介:消费问题是个热门话题,不仅得到广大群众的关注,而且受到党和政府的高度重视。本书
《瞻奥集:中古中国共同研究班十周年纪念论丛》内容简介:本稿为复旦中古研究班十年纪念论文集。基于共通的治学理念与研究领域,20
《Istio实战指南》内容简介:本书是Istio服务网格技术的入门图书。全书分为9章,深入浅出地介绍了Istio的相关知识,结合大量的示例
2天学会电脑组装.系统安装.日常维护与故障排除-(附赠光盘) 本书特色 本书完全从“读者自学”角度出发,结合课堂教学实录,力求...
《移动通信频谱技术与5G频率部署》内容简介:无线电频谱是所有无线电业务的稀缺、关键资源。对移动运营商而言,频谱资源是网络建设