本书主要关注了四个方面,即:优雅编码设计模式、通过并发和编译后的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应用开发实践指南》等书。
《解密·带状疱疹神经痛》内容简介:带状疱疹是临床常见疾病之一,它常见和棘手的并发症是带状疱疹神经痛和带状疱疹后神经痛,它们
《红色范思哲灰色阿玛尼:跟大师学色彩搭配》从“色”的角度对绚丽的时装世界进行了探索。它不是一大堆色彩理论的堆砌,而以巴黎、
《数据分析原理:6步解决业务分析难题》内容简介:本书系统地介绍了数据如何始于业务、取于业务、用于业务。既有扎实的理论铺设,又
《人机交互:以用户为中心的设计和评估(第6版)》内容简介:本书计算机系统、互联网、移动终端,带动了人类生活全面的数字化、信息
HTML5实战 本书特色 作为web开发领域里发展*快的技术之一,html5凭借其动态特性及跨平台特性日益成为程序设计领域备受推崇的语言。作为一门新兴语言,ht...
Ifyouveeverreadabookonane-reader,unleashedyourinnerrockstarplayingGuitarHero,bui...
本书通过大量的20世纪设计案例,从简·奇尔切奥得的《新版式》的版式设计到鲍豪斯的平面设计,再到耐克的产品目录,对栅格系统作
《人生七味,都是好滋味》内容简介:本书现实中有不少人认为忙才是唯一,忙的生活才是有价值的生活;忙才能获得价值感和认同感;以
《数据与计算机通信(第7版)(影印版)》的宗旨是向读者完整地介绍数据与计算机通信这一广阔领域。作者通过书中的章节,将庞大的论题
《ASP.NETMVC1.0高级编程》内容简介:ASP.NETMVC架构是以一些核心原则(可扩展性、可测试性和关注点分离)为指导从头设计而成的。
WPF是微软新一代开发技术,涵盖了桌面应用程序开发、网络应用程序开发和移动应用程序开发,是微软开发技术未来十年的主要方向。本
信息智能分析实验 本书特色 本书为高等院校经济管理实验实践系列教材。该书主要介绍了Excel工具和数据分析;Excel数据整理方面的实验以及Excel数据分析功...
《HarmonyOS应用开发与实践》内容简介:本书以物联网智慧农业移动端应用系统的开发为例,讲解了在HarmonyOS中进行移动开发的方法,
《计算物理学》比较系统、详细地讲述了计算物理领域涉及的重要基本概念、数学基础与方法。书中不仅较多地讲述了在传统物理课题中
数据结构(C语言版) 内容简介 《数据结构》(C语言版)是为“数据结构”课程编写的教材,也可作为学习数据结构及其算法的C程序设计的参数教材。本书的前半部分从抽象...
数据科学是将数据转化为行动的艺术,是综合了统计学、计算机科学和领域知识的新兴学科。数据科学与很多传统学科的最大区别在于其
网络公关 本书特色 在中国公共关系走过二十年的历程后,我非常高兴地看到首套公共关系译丛的出版。此套丛书汲取了国际上先进的公共关系理论和案例研究,堪为经典公共关系...
《典藏——印象派作品高清图集》内容简介:印象派是西方绘画史上划时代的艺术流派,兴起于法国,在19世纪末达到鼎盛,其影响遍及欧
IBM最佳实践-Java企业级持久化技术指南 本书特色 《IBM*佳实践:Java企业级持久化技术指南》:搜索关键词“Java和关系型数据库”可返回许多链接,这...
《银行业知识管理实战精析》内容简介:本书从国际通用的知识管理体系出发,引入55个银行业知识管理案例,案例类型覆盖大型商业银行