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
《大数据智能核心技术入门》内容简介:本书跟从大数据和人工智能应用的融合之路,通过分析和解读整个数据驱动智能核心技术,希望能
《长牛:新时代股市运行逻辑》内容简介:本书立足于当下的资本市场,对底层逻辑的深刻变化做出了剖析,并对未来运行趋势做出了整体
《金砖国家金融合作研究》内容简介:进入21世纪,西方国家经济发展持续疲弱,金砖国家逆势而起。金砖国家不仅是五个具有多样性和互
"SafetywithMachinery"hasbeenwrittenbyJohnRidleyandDickPearce,bothrecognizedspeci...
GetthemostthoroughandcomprehensiveguidetoGoogle.ExpandyourworldwiththedozensofGo...
《亚马逊跨境电商运营宝典》内容简介:本书详细讲解亚马逊的平台知识和运营技巧,内容围绕亚马逊卖家的日常工作,系统讲解亚马逊账
《智能机器时代》内容简介:身处AI(人工智能)世界,人类所有生活领域都面临着一场巨大变革。人工智能的未来发展将走向何处?我们
《端午诗词》内容简介:《诗词端午》选录历代吟咏端午风俗诗词作品共八十多首,目的就是为了让今天的读者尽可能多地获取这方面的厉
《德米安:埃米尔·辛克莱年少时的故事》内容简介:《德米安》是德国作家赫尔曼·黑塞于1919年创作的中篇小说。读者将伴随少年埃米
作为网络程序员,你是否发现自己的应用程序远远不够健壮?那么,你需要了解编写高效TCP/IP程序所需的各种知识。本书正是这么一本
本书是英国剑桥大学卡文迪许实验室的著名学者DavidJ.C.MacKay博士总结多年教学经验和科研成果,于2003年推出的一部力作。本书作
自然语言处理技术基础 本书特色 本书包括了三个方面的内容。**部分介绍基于规则的自然语言处理技术,分别从语法和语义两个层面入手。第二部分介绍基于统计的自然语言处...
《CSSWeb设计高级教程(第2版)》注重Web开发的实践,每章以现实中的Web站点为例,提供了很多容易理解的CSS技巧和技术,例如,如何
InTheSemioticEngineeringofHuman-ComputerInteraction,ClarisseSieckeniusdeSouzapro...
《当你路过我的阳光》内容简介:当我的天空灰暗时,你把快乐带来,你是我的阳光,我唯一的阳光。假如我的世界你不曾来过,我的心将
《PyTorch机器学习从入门到实战》内容简介:近年来,基于深度学习的人工智能掀起了一股学习的热潮。本书是使用PyTorch深度学习框架
信息通信网络是对包括电信网络、计算机网络和新一代网络等在内的各类网络的总称。本书对这些网络在系统层面上就它们的基本概念、
黑川雅之是世界著名的建筑与工业设计师,被誉为开创日本建筑和工业设计新时代的代表性人物。他成功地将东西方审美理念融为一体,
《养出元气满满的孩子》内容简介:《养出元气满满的孩子》主要围绕当下的国学教育展开,从传统文化视角讲述并剖析家庭教育、礼乐教
数据挖掘概念与技术原书第3版 本书特色 ·数据挖掘领域*具里程碑意义的经典著作·完整全面阐述该领域的重要知识和技术创新数据挖掘概念与技术原书第3版 内容简介 ...