Dusty Phillips 是一名加拿大自由软件开发人员、教师、武术家以及开源爱好者。他和Arch Linux 社区以及其他开源社区有着紧密联系。他维护着Arch Linux 的门户网站以及编译了流行的Arch Linux 手册。Dusty 持有计算机科学人机交互方向的硕士学位。他目前在自己的计算机里安装了6 种不同的Python 解释器。
译者简介
肖鹏,毕业于北京理工大学信息与通信工程专业,2011年起就职于思科系统(中国)信息技术服务有限公司,是一名网络咨询工程师,具有多年Python网络开发经验。个人博客: http://www.pythoner.io/ GitHub:xiaopeng163
常贺,毕业于北京邮电大学计算机科学与技术专业,现就职于思科系统中国公司高级服务部门。他具备多年的网络监控管理系统的开发经验。
石琳,思科系统(中国)信息技术服务有限公司网络咨询工程师,具有多年python开发经验,目前从事SDN方面的技术工作。
第1 章 面向对象设计 ...................................................................................................... 1
面向对象 ............................................................................................................................. 1
对象和类 ............................................................................................................................. 3
指定属性和行为 ................................................................................................................. 5
数据描述对象 ............................... ..................................................................................... 5
行为是动作 ............................................................................... .......................................... 7
隐藏细节并且创建公共接口 .............................................................................................. 8
组合和继承 ......................................................................................................................... 10
继承 ..................................................................................................................................... 12
案例学习 ............................................................................................................................. 15
练习 ..................................................................................................................................... 22
总结 ..................................................................................................................................... 23
第2 章 Python 对象 ...................................................................................................... .. 24
创建Python 类 ................................................................................................................... 24
添加属性 ............................................................................................................................. 26
让类实际做一些事情 ..................................................................................................... ... 26
对象的初始化 ..................................................................................................................... 29
解释你自己 ......................................................................................................................... 32
模块和包 ............................................................................................................................. 34
组织模块 ............................................................................................................................. 36
谁可以访问我的数据 ......................................................................................................... 41
案例学习 .......................................................................................................................... 43
练习 .................................................................................................................................. 52
总结 .................................................................................................................................. 53
第3 章 当对象是相似的 ............................................................................................... 54
基本继承 .......................................................................................................................... 54
扩展内置类 ...................................................................................................................... 56
重写和Super ..................................................................................................................... 58
多重继承 .......................................................................................................................... 59
钻石的问题 ...................................................................................................................... 61
不同的参数集合 .............................................................................................................. 66
多态 .................................................................................................................................. 68
案例学习 .......................................................................................................................... 71
练习 .................................................................................................................................. 84
总结 .................................................................................................................................. 85
第4 章 异常处理 ........................................................................................................... 86
抛出异常 .......................................................................................................................... 86
抛出一个异常 .................................................................................................................. 88
当一个异常产生时发生了什么 ...................................................................................... 90
异常处理 .......................................................................................................................... 91
异常层级 .......................................................................................................................... 97
定义自己的异常 .............................................................................................................. 98
异常不是例外 .................................................................................................................. 99
案例学习 ......................................................................................................................... 102
练习 ................................................................................................................................. 112
总结 ................................................................................................................................. 113
第5 章 何时使用面向对象编程 .................................................................................. 114
把对象当作“对象”来对待 .......................................................................................... 114
使用property 为类中的数据添加行为 ......................................................................... 118
property 是怎样工作的 .................................................................................................. 121
装饰器:创建property 的另一种方法 ..........................................................................123
何时该使用property 属性 ..............................................................................................125
管理对象 ........................................................................................................................... 127
移除重复的代码 ................................................................................................................130
实践一下 ........................................................................................................................... 131
或者我们可以使用组合 ....................................................................................................135
案例学习 ........................................................................................................................... 137
练习 ................................................................................................................................... 145
总结 ................................................................................................................................... 146
第6 章 Python 数据结构 ............................................................................................... 147
空对象 ............................................................................................................................... 147
元组和命名元组 ............................................................................................................... 148
命名元组 ........................................................................................................................... 150
字典 ................................................................................................................................... 152
何时应该使用字典 ........................................................................................................... 155
使用defaultdict ................................................................................................................. 156
列表 .................................................................................................................................. 157
对列表排序 ...................................................................................................................... 160
集合 .................................................................................................................................. 162
扩展内置数据类型 .......................................................................................................... 166
案例学习 .......................................................................................................................... 171
练习 .................................................................................................................................. 178
总结 .................................................................................................................................. 178
第7 章 Python 里面向对象的快捷方式 ...................................................................... 180
Python 内置函数 ............................................................................................................. 180
Len ...................................................................................................................................... 180
Reversed ............................................................................................................................. 181
Enumerate .......................................................................................................................... 182
Zip ....................................................................................................................................... 183
其他函数 ........................................................................................................................... 185
解析 ................................................................................................................................... 186
列表解析 ........................................................................................................................... 186
集合和字典解析 ............................................................................................................... 188
生成器表达式 ................................................................................................................... 189
生成器 ............................................................................................................................... 191
方法重载的另一种选择 ................................................................................................... 194
默认参数 ........................................................................................................................... 195
可变参数列表 ................................................................................................................... 197
参数拆分 ........................................................................................................................... 201
函数也是对象 ................................................................................................................... 202
使用函数作为属性 ........................................................................................................... 206
可调用对象 ....................................................................................................................... 207
案例学习 ........................................................................................................................... 208
练习 ................................................................................................................................... 212
总结 ................................................................................................................................... 213
第8 章 设计模式1 .......................................................................................................... 214
设计模式 ........................................................................................................................... 214
装饰器模式 ....................................................................................................................... 215
装饰器实例 ....................................................................................................................... 216
Python 中的装饰器模式 ................................................................................................. 219
观察者模式 ...................................................................................................................... 221
观察者实例 ...................................................................................................................... 222
策略模式 .......................................................................................................................... 224
策略实例 .......................................................................................................................... 225
Python 中的策略模式 .....................................................................................................226
状态模式 .......................................................................................................................... 227
状态实例 .......................................................................................................................... 227
状态和策略模式的对比 ...................................................................................................233
单件模式 .......................................................................................................................... 234
单件的实现方式 ..............................................................................................................234
模块变量能够模仿单件 ..................................................................................................235
模板模式 ......................................................................................................................... 238
模板实例 ......................................................................................................................... 238
练习 ................................................................................................................................. 242
总结 ................................................................................................................................. 243
第9 章 设计模式2 ........................................................................................................ 244
适配器模式 ..................................................................................................................... 244
外观模式 ......................................................................................................................... 247
享元模式 ......................................................................................................................... 250
命令模式 ......................................................................................................................... 254
抽象工厂模式 ................................................................................................................. 259
组合模式 ......................................................................................................................... 263
练习 ................................................................................................................................. 267
总结 ................................................................................................................................. 268
第10 章 文件和字符串 ................................................................................................ 270
字符串 ............................................................................................................................. 270
字符串操作 ..................................................................................................................... 271
字符串格式化 ................................................................................................................. 274
字符串是Unicode 的 .................................................................................................... 281
可变字节字符串 ............................................................................................................ 285
文件I/O ........................................................................................................................... 286
把它放在上下文 ............................................................................................................ 287
伪造文件 ....................................................................................................................... 289
存储对象 ....................................................................................................................... 290
定制pickle ...................................................................................................................... 292
序列化Web 对象 ......................................................................................................... 294
练习 ............................................................................................................................... 297
总结 ............................................................................................................................... 299
第11 章 测试面向对象的程序 .................................................................................. 300
为什么要测试 ............................................................................................................... 300
测试驱动开发 ............................................................................................................... 302
单元测试 ....................................................................................................................... 303
断言方法 ....................................................................................................................... 304
减少样板和清理 ........................................................................................................... 306
组织和运行测试 ........................................................................................................... 308
忽略失败的测试 ........................................................................................................... 309
用py.test 测试 ............................................................................................................. 311
一个处理安装和清理的方法 ....................................................................................... 313
一种完全不同的变量设置方式 ................................................................................... 316
用py.test 跳过测试 ..................................................................................................... 320
py.test 的补充 .............................................................................................................. 321
多少测试才算够 .......................................................................................................... 323
案例学习 ...................................................................................................................... 326
实现它 ....................................................................................................................... 327
练习 .......................................................................................................................... 332
总结 .......................................................................................................................... 333
第12 章 常用Python 3 库 .................................................................................... 334
数据库访问 .............................................................................................................. 335
引入SQLAlchemy ...................................................................................................... 336
漂亮的用户界面 ...................................................................................................... 340
TkInter ........................................................................................................................ 341
PyQt ........................................................................................................................... 345
选择一个GUI 工具包 ............................................................................................. 347
XML ............................................................................................................................ 348
ElementTree ............................................................................................................... 349
Lxml ........................................................................................................................... 353
CherryPy .................................................................................................................... 354
一个完整的Web 堆栈 ........................................................................................... 357
练习 ......................................................................................................................... 363
总结 ......................................................................................................................... 364
《物联网与生态环境》内容简介:本书围绕党的十八大以来我国在生态文明建设和美丽中国实践的新特色,本书系统总结了物联网在生态环
《养出元气满满的孩子》内容简介:《养出元气满满的孩子》主要围绕当下的国学教育展开,从传统文化视角讲述并剖析家庭教育、礼乐教
《微营销》内容简介:《微营销:指尖上的利器》站在更宏观更广博的层面上,对下一个“微营销会占据未来十年”进行论断,以“指尖上
开放式知识网络与高技术服务模式创新-构建体系.动态耦合及网络效应 本书特色 本书既为高技术开放式知识网络体竞争优势的完善、强化与发展提供有力的理论支撑与战略依据...
《科学新领域的探索》:美国新墨西哥州洛基山脚下的圣菲研究所离洛斯阿拉莫斯国家实验室(LANL)不远,以研究复杂系统而著称。在
Awiderangeofdelightfulproductscreatedforchildrenandtheirdesign-consciousparents....
本书通过分析ReactOS的源代码介绍了Windows内核各个方面的结构、功能、算法与具体实现。全书从“内存管理”、“进程”、“进程间
无论是软件开发、工程还是建筑,有效的设计都是工作的核心。《设计原本:计算机科学巨匠FrederickP.Brooks的思考》将对设计过程进
《别让心态毁了你》内容简介:保持什么样的心态就会有什么样的行为方式,而行为方式决定着一个人的生人走向。心态能够成就一个人,
LATEX 2e完全学习手册-(第二版)-附光盘1张 本书特色 latex2e,简称latex,是一种专业的高品质文稿排版系统,目前已成为国际学术出版界广泛使用...
本书从信道衰落的物理本质入手,给出了无线移动信道完整的数学模型,简明、清晰地阐述了由时间、频率和空间变化所引起的三种不同
本书由浅入深、循序渐进地介绍了HTML、XHTML和CSS的语法、元素、属性的使用方法,介绍了如何使用(X)HTML和CSS编写符合标准的Web页
《迷你世界创想天地:未来建筑大师(官方攻略3)》内容简介:《迷你世界创想天地》系列共分生存、战斗、建造、星能4册,无论你是刚
《EDA精品智汇馆:硬件系统工程师宝典》硬件系统设计中的常见需求,设计中需要考虑的各类概要设计及开发平台的归纳,SI的理论分析
本书由地理信息系统(GIS)领域的四位资深学者编写,全面系统地讲解地理信息系统的基本原理与应用,是该领域的优秀教材。本书的主要
《诗歌课的25个瞬间》内容简介:本书立志于填补童诗教学的盲点,通过引进古诗做参照物,在生活中发现大量童诗写作的题材。此外,本
全书共分八章,内容包括:矢量分析、静电场、恒定电流的电场和磁场、静态场的解、时变电磁场、平面电磁波、电磁波的辐射及导行电
《与渴望联结(全7册)》内容简介:正如身体的健康需要物质营养,孩子心灵的成长与心理力量的强大必须获取足够的心理营养。在成长的
《优势成长》内容简介:这是一本帮你锁定并提升个人核心竞争力的实用类的图书。活着的每一天,都是为了超越昨天的自己。给努力多一
随着Internet的发展和普及,通信网目前也出现了革命性的转变(即从基于电话结构的标准网络转向基于IP结构的网络),并借助Intern