精品下载站:打造最安全最新的免费软件下载站! 全站导航最近更新

首页电子书库网络教程 → Python3面向对象编程第二版pdf免费在线阅读

Python3面向对象编程第二版pdf免费在线阅读

  • 授权方式:免费软件
  • 软件类型:国产软件
  • 软件语言:中文
  • 更新时间:2020-12-16 18:30
  • 官方网址:暂无
  • 软件大小:3.5M
  • 推荐星级:
  • 运行环境:WinAll

软件介绍 软件截图 相关下载 相关文章 点击评论

软件标签: Python3面向对象编程 Python

可以对面向对象有进一步的理解

python3面向对象编程第二版循循善诱,教如何用python进行面向对象编程,方法很Pythonic,而不仅仅是python的class。每一章后面的案例也是蛮有意思的。讲解的过程中会把每一次改进用黑体出来出版社的耐心。书后面有点凑字数的感觉,但都是不错的。

Python3面向对象编程第二版pdf免费在线阅读

python3面向对象编程第二版pdf预览

内容简介

本书主要介绍如何使用Python 3进行面向对象编程。1~4章介绍面向对象这一编程范式的基本准则,以及Python是如何运用这些准则实现面向对象编程的;第5~8章,介绍如何利用Python中的内置函数快速、简单地实现面向对象编程;第9~11章介绍了许多面向对象编程中常用的设计模式,以及如何使用符合 Python 语言习惯的方式来实现这些设计模式;最后第12、13章介绍了Python 3中并发编程相关的主题。本书中每一章都会包含一节案例学习的内容,通过一个实践相关的案例将本章介绍的主要内容以及前面章节中介绍过的内容串联起来。除此之外,每一章最后的练习旨在指导你利用本章学习到的内容,使用面向对象编程改善以往项目中的代码,并进一步掌握如何在合适的时机使用Python 3进行面向对象编程。

目录大全

第1章 面向对象设计 1

面向对象 1

对象和类 3

指定属性和行为 5

数据描述对象 5

行为就是动作 7

隐藏细节并创建公共接口 8

组合 11

继承 13

继承提供抽象 15

多重继承 16

案例学习 16

练习 24

总结 24

第2章 Python对象 26

创建Python类 26

添加属性 28

让它做点什么 29

初始化对象 32

自我解释 34

模块和包 36

组织模块 38

组织模块内容 41

谁可以访问我的数据 44

第三方库 46

案例学习 48

练习 56

总结 57

第3章 对象相似时 58

基本的继承 58

扩展内置对象 60

重写和super 62

多重继承 63

钻石型继承问题 66

不同集合的参数 71

多态 74

抽象基类 77

使用抽象基类 77

创建抽象基类 78

魔术揭秘 80

案例学习 82

练习 95

总结 95

第4章 异常捕获 96

抛出异常 96

抛出一个异常 98

异常的作用 99

处理异常 101

异常的层级 106

定义我们自己的异常 108

案例学习 112

练习 122

总结 123

第5章 何时使用面向对象编程 124

将对象看作对象 124

通过属性向类数据添加行为 128

属性的细节 131

装饰器――另一种创建属性的方法 133

决定何时使用属性 134

管理员对象 136

移除重复代码 139

实践 141

案例学习 144

练习 152

总结 153

第6章 Python数据结构 154

空对象 154

元组和命名元组 155

命名元组 157

字典 159

字典用例 162

使用defaultdict 163

列表 166

列表排序 168

集合 171

扩展内置类型 175

队列 180

FIFO队列 181

LIFO队列 183

优先级队列 184

案例学习 186

练习 193

总结 194

第7章 Python面向对象的捷径 195

Python内置函数 195

len()函数 195

反转函数 196

枚举 198

文件I/O 199

放在上下文管理器中 201

方法重载的另一种方式 203

默认参数 204

变量参数列表 206

参数解包 209

函数也是对象 210

将函数作为属性 215

可调用对象 216

案例学习 217

练习 224

总结 225

第8章 字符串与序列化 226

字符串 226

字符串操作 227

字符串格式化 229

字符串是Unicode 236

可变字节字符串 240

正则表达式 241

匹配模式 242

从正则表达式中获取信息 246

序列化对象 249

自定义序列化 251

序列化Web对象 253

案例学习 256

练习 262

总结 263

第9章 迭代器模式 265

设计模式简介 265

迭代器 266

迭代器协议 266

推导 269

列表推导 269

集合与字典推导 271

生成器表达式 272

生成器 274

从另一个可迭代对象中产生 277

协程 279

回到日志解析 282

关闭协程并抛出异常 285

协程、生成器与函数的关系 285

案例学习 286

练习 293

总结 294

第10章 Python设计模式I 295

装饰器模式 295

装饰器的例子 296

Python中的装饰器 299

观察者模式 301

观察者模式的例子 302

策略模式 304

策略模式的例子 305

Python中的策略 307

状态模式 307

状态模式的例子 308

状态与策略 314

状态转换作为协程 314

单例模式 315

单例模式的实现 315

模板模式 319

模板模式的例子 319

练习 323

总结 324

第11章 Python设计模式II 325

适配器模式 325

门面模式 328

享元模式 331

命令模式 335

抽象工厂模式 340

复合模式 344

练习 349

总结 350

第12章 测试面向对象程序 351

为什么要测试 351

测试驱动开发 353

单元测试 354

断言方法 355

减少模板代码并进行清理 357

组织和运行测试 359

忽略失败的测试 359

用py.test进行测试 361

一种完成设置和清理的方式 363

一种完全不同的设置变量的方式 366

在py.test中跳过测试 370

模拟昂贵的对象 371

多少测试才足够 375

案例学习 378

实现它 379

练习 384

总结 385

第13章 并发 386

线程 386

线程的诸多问题 390

线程的超常开支 391

多进程 392

多进程池 394

队列 396

多进程的问题 398

Future对象 398

AsyncIO 401

AsyncIO实践 402

读取AsyncIO中的Future对象 403

在网络编程中使用AsyncIO 404

用executor封装阻塞代码 407

流 409

案例学习 410

练习 416

总结 417

图书亮点

适读人群:如果你还不熟悉面向对象编程技术,或者你已经对Python有了基本的了解,希望深入学习如何在用Python设计软件时正确地应用面向对象编程,那么这本书就是为你准备的。

本书包含如下内容。

√通过创建类、定义方法来实现Python对象

√将相关对象归类到不同类中,并通过类接口描述这些对象的属性和行为

√使用继承关系扩展类的功能

√理解何时使用面向对象特征,以及更重要的是,何时不该使用

√发现哪些设计模式在Python中有所不同及其原因

√发现单元测试的简易之处,以及为何它对于Python如此重要

√学习Python3中常见的并发技术及其陷阱

√探索*新的AsyncIO模块来开发大规模并发网络系统

关于作者

Dusty Philips是一位来自加拿大的软件开发者和作者,现居于华盛顿西雅图。作者在过去15年间活跃于开源社区并主要以Python作为开发语言。他是著名的Puget Sound Programming Python会议组的共同创始人,如果你在附近区域欢迎前往参加相关会议。《Python 3面向对象编程》由Packt出版社出版,这是他的**本书。他同时也创作了书籍《用Kivy创建应用》(O'Reilly),介绍关于Python的移动开发库。同时其发布了Hacking Happy,介绍技术人员的精神健康之旅。他曾在本书第1版出版之后不久因为自杀倾向而入院治疗,并自此成为积极精神健康的公开倡导者。

Dusty Philips是一位来自加拿大的软件开发者和作者,现居于华盛顿西雅图。作者在过去15年间活跃于开源社区并主要以Python作为开发语言。他是著名的Puget Sound Programming Python会议组的共同创始人,如果你在附近区域欢迎前往参加相关会议。《Python 3面向对象编程》由Packt出版社出版,这是他的**本书。他同时也创作了书籍《用Kivy创建应用》(O'Reilly),介绍关于Python的移动开发库。同时其发布了Hacking Happy,介绍技术人员的精神健康之旅。他曾在本书第1版出版之后不久因为自杀倾向而入院治疗,并自此成为积极精神健康的公开倡导者。

免费在线试读

译者序

Python是一门多范式编程语言,这意味着你可以用它进行面向对象编程,也可以选择使用面向过程编程的方式,甚至可以尝试函数式编程。而Python最令人着迷之处在于,它拥有极大灵活性的同时,使用的是十分简单、优雅的语法,因此甚至被称为“可执行的伪代码”。本书主要围绕Python面向对象编程相关的概念与方法,同时也介绍了一些Python 3的新增功能、特性。众所周知,Python 3的升级、推广在Python开发者中一直存在较多争议,批判者的声音主要集中在其向后不兼容这一点。不过译者认为Python 3是非常值得开发者花时间去学习、升级的,Python 3中的字符串默认采用UTF-8编码,这无疑给中文环境的开发者带来了极大的便捷;此外,采用新的异步编程模型也使得Python在服务器开发领域更具竞争力。幸运的是,本书对于这几点都通过单独章节分别进行了详细介绍,无论读者是刚刚接触Python的初学者,还是打算将Python从之前的版本升级到最新的版本,本书都将很有帮助。

第2版序

我需要忏悔,在我写本书第1版的时候,我根本不知道自己在做什么。我认为我了解Python并且知道该怎么写。很快我就发现这是错的。幸运的是,通过本书的写作我已经完全适应了这两点。

我担心大家可能会不喜欢《Python 3 面向对象编程》这本书,所以我两年没有参加PyCon。直到收获了几十条正面的反馈,我才重获信心,终于参加了2012年在圣克拉拉举办的PyCon。我很快发现每个人都听说过我或我的书,完全是我庸人自扰!

书写完之后我也很怕重新阅读它。在收到诸多赞誉之前,它一直严实地放在我的书架上,直到我需要引用其中的内容回答读者的提问。在准备本书第2版的时候,我最终不得不面对我的心魔。令我惊喜和开心的是,我发现5年前自己所写的这本书既准确又令人愉快,一如很多读者的评价所提到的。

初次阅读之后不久,我收到了来自 Amazon 上的第一条负面评价。如果我在完成本书后立即看到这条评价,那将是毁灭性的。幸运的是,4年来的正面评价以及我自己对写作上的自信,让我可以忽略辛辣的批评并将剩下的部分作为建设性的反馈。事实上,读者提出的很多瑕疵都是本书最初出版时Python还未实现的特征。《Python 3面向对象编程》出版已经有些年头了,显然已经到了需要升级的时候。升级的结果现在已经在你手里(或在你的电子书阅读器上)。

我经常纳闷,为什么技术类书籍的作者要如此详细地描述不同版本书籍之间的区别。我的意思是,有多少人会在读了第1版之后还读第2版呢?就像软件的版本一样,你可以笃定最新的版本是最好的,但你不会真的想要关心它的历史。不过,这本书占据了我过去一年大部分的时间,所以我不得不提一下这本书已经变得多好了。

其实第1版组织得稍微有些混乱,很多章节结束之后直接跳到下一章,有几个关键位置上的主题之间存在跳跃,甚至更糟糕的是,彼此不相关。现在,讨论设计模式之前的2章被重新调整并分为3章,这样更加顺畅地切换到下一个主题。

我同时也彻底删除了关于Python 3第三方库的一整章内容。在Python 3和这本书都还是新鲜事物的时候,这一章的存在还算合理。只有几个库移植到Python 3,对它们进行详尽的讨论是合理的。不过,我没办法深入探讨这些主题的细节,坦白地说,针对每一个主题我都可以再写一整本书。

最后,我添加了全新的一章,关于并发的内容。关于这一章我纠结了一阵,现在可以坦白承认它与面向对象编程并没有直接的关系。然而,和单元测试那一章一样,我认为理解并发是所有语言中不可或缺的部分,特别是对于Python生态系统中的面向对象编程。当然,如果你不同意大可跳过这些章节(或者等你改变主意之后再来阅读它们)。

请尽情享受这本书以及你的面向对象编程之旅!

Dusty Phillips

前言

本书介绍了面向对象范式的相关术语,通过循序渐进的例子聚焦面向对象设计。本书介绍从简单且是面向对象编程工具箱中最有用的继承关系,到异常处理和设计模式的内容,以一种面向对象的方式来看待面向对象的概念。

在这一过程中,我们将会学习整合 Python 编程语言中面向对象和非面向对象的方面,学习操作文件和字符串的复杂性,并强调(正如Python 3 所做的)二进制和文本数据的区别。

我们将会发现单元测试的乐趣,会用到两个单元测试框架。最后,我们会探索Python众多的并发范式,学习如何让不同对象在同一时间一起运行。

本书包含哪些内容

本书可以粗略地分为4个主要部分。前4章我们将会深入探讨面向对象编程的准则以及Python是如何运用它们的。第5~8章我们将会通过学习这些准则是如何应用到Python内置函数中的,来探讨一些Python特有的应用。第9~11 章是关于设计模式的内容。最后两章探讨与Python编程相关同时可能很有趣的主题。

第1章,面向对象设计,介绍了重要的面向对象概念。主要关于一些相关术语,如抽象、类、封装、继承。我们也简单地介绍了用来建模类和对象的UML。

第2章,Python对象,讨论类和对象以及如何在Python中使用它们。我们将会学习Python对象的属性和行为,以及如何将类组织到包和模块中去。最后,我们将会学习如何保护我们的数据。

第3章,对象相似时,帮助我们更加深入地探讨继承关系。包括多重继承以及如何扩展内置类型。这一章也介绍了多态和鸭子类型在Python中是如何运作的。

第4章,异常捕获,介绍异常和异常处理。我们将会学习如何创建我们自己的异常,以及如何利用异常控制程序流程。

第5章,何时使用面向对象编程,介绍如何创建和使用对象。我们将会看到如何用属性封装数据以及限制数据的访问。这一章也讨论了DRY准则以及如何避免代码重复。

第6章,Python数据结构,介绍Python内置类的面向对象特征。我们将会学习元组、字典、列表以及集合,还有几个更高级的容器类型。我们也将学习如何扩展这些标准对象。

第7章,Python面向对象的捷径,正如标题所言,这一章介绍使用Python节省时间的方法。我们将会学习很多有用的内置函数,例如用默认参数实现方法重载。我们也将看到函数本身也是对象的特性以及如何利用这一特性。

第8章,字符串与序列化,介绍字符串、文件以及格式化。我们将会讨论字符串、字节以及字节数组之间的区别,还有将序列化文本、对象和二进制数据转化为几种规范表示的多种不同方式。

第9章,迭代器模式,介绍了设计模式的概念,以及迭代器模式的Python图形化实现。我们将会学习列表、集合以及字典的推导形式。我们也将理解生成器与协程。

第10章,Python设计模式I,介绍了几种设计模式,包括装饰器模式、观察者模式、策略模式、状态模式、单例模式以及模板模式。每一种设计模式都通过Python实现的相关的例子程序进行讨论。

第11章,Python设计模式II,专注讨论更多的设计模式,如适配器模式、门面模式、享元模式、命令模式、抽象模式以及组合模式。用更多的例子说明Python习惯用法与规范实现之间的区别。

第12章,测试面向对象程序,以介绍为何对Python应用进行测试如此重要为开始。强调测试驱动开发,并介绍两种不同的测试工具unittest和py.test。最后,讨论模拟测试对象和代码覆盖率相关内容。

第13章,并发,这一章是关于Python所支持(以及缺乏)的并发模式的速成教程。讨论了线程、多进程、Future以及新的AsyncIO库。

每一章都包含相关的例子和一个案例学习,案例学习会将本章内容整合到一个可运行的(可能不完整的)程序中。

学习本书你需要用到什么

本书中所有的例子都是基于Python 3解释器的。确保你用的不是Python 2.7或更早的版本。在写本书时,Python 3.4是最新的版本。大部分例子也可以在较早版本的Python 3中运行,但是为了最大限度地减少可能给你带来的失望情绪,最好用最新版本。

所有的例子都可以运行在任何支持Python的操作系统上。如果不能,请作为错误信息提交给我。

有些例子需要连接互联网。你可能会想要有一个这样的课外研究和调试。

除此之外,本书中有些例子依赖于不使用Python的第三方库。在用到它们的时候会进行介绍,因此你并不需要提前安装。但是为了保持完整性,下面列出会用到的所有库:

pip

requests

pillow

bitarray

本书的目标读者

本书尤其针对那些没有面向对象编程经验的人,同时也假设你已经拥有了基本的Python技能。你将会深入学习面向对象准则。对于将Python用作“胶水”语言并希望提升编程技巧的系统管理员来说,本书也特别有用。

如果你熟悉用其他语言进行面向对象编程,那么本书将会帮助你用符合Python语言习惯的方式将你的这些知识应用到Python生态系统中。

约定

本书使用不同的文本格式来区别不同的信息。下面是一些格式的例子,以及它们的含义。

文本中的代码、数据库表名、目录名、文件名、文件后缀名、路径名、URL、用户输入以及Twitter用户名以如下方式展示:“我们从字典中查询类,并存储到名为PropertyClass的变量中。”

一个代码块可以设定为如下所示的样式:

def add_property(self): 

property_type = get_valid_input( 

"What type of property? ", 

("house", "apartment")).lower() 

payment_type = get_valid_input( 

"What payment type? ", 

("purchase", "rental")).lower()

当我们想要让你特别关注

Python3面向对象编程第二版pdf免费在线阅读截图

相关文章

因为版权问题,暂停提供下载,请支持正版书籍购买。

下载地址

点击评论

热门评论
最新评论
昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
字数: 0/500 (您的评论需要经过审核才能显示)

软件TOP榜