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
《普通高等教育十一五国家级规划教材•模拟电子电路及技术基础》分两篇,共11章。第一篇(一~三章)以系统应用为出发点,介绍放大器
《JavaScript捷径教程》讲述了JavaScript以及DOM的应用。重点讲解了JavaScript库,并通过实际的示例说明了如何把这些库应用于你的
《物联网系统架构设计与边缘计算(原书第2版)》内容简介:本书涵盖从物联网传感器到云计算的整个物联网解决方案谱系。首先研究现代
《世界经典步枪TOP10》内容简介:步枪是世界上产量最高、应用最广泛的单兵轻武器。本书以轻武器发展的重要节点划分历史时期,纵向回
ThemostcompleteguidetoCiscoCatalyst(r)switchnetworkdesign,operation,andconfigura...
Networksareeverywhere,fromtheInternet,tosocialnetworks,andthegeneticnetworksthat...
《我国城市化进程中新二元结构问题研究》内容简介:“新二元结构”是在我国城市化进程中城乡二元结构的特殊表现形式。“新二元结构
《所罗门王的宝藏》内容简介:犹太民族的所罗门国王既是智慧的代表,又是财富的象征。他死后多少个世纪以来,人们一直在寻找这批古
《法律硕士联考考试大纲深度解析(非法学与法学通用)》内容简介:本书主要内容为法律硕士联考考试大纲的深度解析。本书综合考虑了
《王维诗集》内容简介:王维是盛唐时期的著名诗人,苏轼赞他“味摩诘之诗,诗中有画;观摩诘之画,画中有诗”,尤以山水诗成就为最
《20世纪中国唯识学史要》内容简介:本书是海内外第一部对20世纪佛教唯识学思潮作出系统梳理的研究专著,以20世纪中国法相唯识学发
《世界是設計》與構思設計本身的面向有關。在此,不把設計理解為精製、美化、裝飾。設計一字的最初意義隱含構思起草。設計首先是
《游踪行旅亦有趣》内容简介:《游踪行旅亦有趣》中的作品有叙事的、抒情的、释理的,文笔手法细腻,结构顺畅,条理清晰,内容丰富
《我知道你在想什么:八卦心理学》内容简介:不灌心灵鸡汤,不堆专业名词,我们就是要剖析心理学的黑历史!马伯庸、曹天元、刘夙、
《Python人脸识别:从入门到工程实践》内容简介:本书讲解了人脸识别模型的实现原理和特点,更重要的是强调了工程上的实践能力,对
《免疫力是最好的医生》内容简介:为什么常年慢性病等基础性疾病人群容易感染疫病等各种疾病,因为免疫力差。好好调理呼吸道疾病、
《唐前孟学史》内容简介:本书对唐前孟学史展开系统研究,分为“战国孟学史”、“秦汉孟学史”、“魏晋南北朝孟学史”三编,共十五
ForcoursesinDigitalCommunications.Providesacomprehensiveandin-depthintroductiont...
电子商务技术基础-(第2版) 本书特色 《电子商务技术基础》(第2版)可作为高等院校电子商务、信息管理、计算机应用、国际贸易类专业本科生或研究生的教材或教学参考...
本书助您轻松体验Cocoa开发,不仅是阅读,还有动手实践。介绍完Xcode和InterfaceBuilder之后,您将很快接触到Objective-C的面向对