python经典书籍推荐:Python面向对象编程指南 : Mastering Object-oriented

所属网站分类: 资源下载 > python电子书


作者:goodbody

原文链接: http://www.pythonheidong.com/blog/article/474/

来源:python黑洞网 www.pythonheidong.com

内容简介

Python是一种面向对象、解释型的程序设计语言,它已经被成功应用于科学计算、数据分析以及游戏开发等诸多领域。

本书深入介绍Python语言的面向对象特性,全书分3个部分共18章。第1部分讲述用特殊方法实现Python风格的类,分别介绍了__init__()方法、与Python无缝集成—基本特殊方法、属性访问和特性及修饰符、抽象基类设计的一致性、可调用对象和上下文的使用、创建容器和集合、创建数值类型、装饰器和mixin—横切方面;第2部分讲述持久化和序列化,分别介绍了序列化和保存、用Shelve保存和获取对象、用SQLite保存和获取对象、传输和共享对象、配置文件和持久化;第3部分讲述测试、调试、部署和维护,分别介绍了Logging和Warning模块、可测试性的设计、使用命令行、模块和包的设计、质量和文档。

本书深入剖析Python,帮助读者全面掌握Python并构建出更好的应用程序,非常适合对Python语言有一定了解并想要深入学习Python的读者,也适合有一定开发经验并且想要尝试使用Python语言进行编程的IT从业人员

目录

第1部分用特殊方法实现Python风格的类1
第1章__init__()方法5
1.1隐式的基类——object5
1.2基类中的__init__()方法6
1.3在基类中实现__init__()方法7
1.4使用__init__()方法创建常量清单8
1.5通过工厂函数调用__init__()9
1.5.1错误的工厂设计和模糊的else语句10
1.5.2使用elif简化设计来获得一致性11
1.5.3使用映射和类来简化设计11
1.6在每个子类中实现__init__()方法14
1.7简单的组合对象16
1.7.1封装集合类16
1.7.2扩展集合类17
1.7.3可适应更多需求的另一种设计17
1.8复合的组合对象18
1.9不带__init__()方法的无状态对象19
1.10一些其他的类定义20
1.11多策略的__init__()方法22
1.11.1更复杂的初始化方式23
1.11.2静态函数的初始化24
1.12更多的__init__()技术24
1.12.1带有类型验证的初始化26
1.12.2初始化、封装和私有化28
1.13总结29
第2章与Python无缝集成——基本特殊方法30
2.1__repr__()和__str__()方法30
2.1.1非集合对象的__str__()和__repr__()31
2.1.2集合中的__str__()和__repr__()32
2.2__format__()方法33
2.2.1内嵌格式规范34
2.2.2集合和委托格式规范35
2.3__hash__()方法35
2.3.1决定哈希的对象36
2.3.2有关不可变对象和继承的默认行为37
2.3.3重载不可变对象39
2.3.4重载可变对象40
2.3.5从可变的Hand类中生成一个不可变的Hand类41
2.4__bool__()方法43
2.5__bytes__()方法44
2.6比较运算符方法45
2.6.1设计比较运算47
2.6.2实现同一个类的对象比较48
2.6.3实现不同类的对象比较49
2.6.4硬总和、软总和及多态50
2.6.5不同类比较的例子51
2.7__del__()方法53
2.7.1引用计数和对象销毁54
2.7.2循环引用和垃圾回收55
2.7.3循环引用和weakref模块56
2.7.4__del__()和close()方法58
2.8__new__()方法和不可变对象58
2.9__new__()方法和元类型59
2.9.1元类型示例1——有序的属性60
2.9.2元类型示例2——自引用61
2.10总结64
第3章属性访问、特性和修饰符66
3.1属性的基本操作66
3.2创建特性68
3.2.1主动计算特性70
3.2.2setter和deleter特性71
3.3使用特殊方法完成属性访问72
3.3.1使用__slots__创建不可变对象73
3.3.2使用tuple子类创建不可变对象74
3.3.3主动计算的属性75
3.4__getattribute__()方法77
3.5创建修饰符78
3.5.1使用非数据修饰符80
3.5.2使用数据修饰符81
3.6总结、设计要素和折中方案83
3.6.1特性与属性对比83
3.6.2修饰符的设计84
3.6.3展望84
第4章抽象基类设计的一致性85
4.1抽象基类85
4.2基类和多态87
4.3可调用对象88
4.4容器和集合88
4.5数值类型89
4.6其他的一些抽象基类90
4.6.1迭代器的抽象基类90
4.6.2上下文和上下文管理器91
4.7abc模块92
4.8总结、设计要素和折中方案93
第5章可调用对象和上下文的使用95
5.1使用ABC可调用对象来进行设计95
5.2提高性能97
5.3使用functools完成记忆化99
5.4可调用API和复杂性100
5.5管理上下文和with语句102
5.5.1使用小数上下文103
5.5.2其他上下文104
5.6定义__enter__()和__exit__()方法104
5.7上下文管理器工厂105
5.8总结107
5.8.1可调用对象的设计要素和折中方案108
5.8.2上下文管理器的设计要素和折中方案108
5.8.3展望109
第6章创建容器和集合110
6.1集合的抽象基类110
6.2特殊方法示例111
6.3使用标准库的扩展112
6.3.1namedtuple()函数112
6.3.2deque类114
6.3.3使用ChainMap115
6.3.4OrderedDict集合116
6.3.5defaultdict子类118
6.3.6counter集合119
6.4创建新集合120
6.5定义一种新的序列121
6.5.1一个用于统计的list122
6.5.2主动计算和延迟计算122
6.5.3使用__getitem__()、__setitem__()、__delitem__()和slice操作125
6.5.4实现__getitem__()、__setitem__()和__delitem__()126
6.5.5封装list和委托127
6.5.6用__iter__()创建迭代器129
6.6创建一种新的映射129
6.7创建一种新的集合131
6.7.1一些设计原则132
6.7.2定义Tree类132
6.7.3定义TreeNode类133
6.7.4演示二叉树集合136
6.8总结136
6.8.1设计要素和折中方案137
6.8.2展望138
第7章创建数值类型139
7.1numbers的抽象基类139
7.1.1决定使用哪种类型141
7.1.2方法解析和运算符映射141
7.2算术运算符的特殊方法142
7.3创建一个数字类144
7.3.1FixedPoint的初始化144
7.3.2定义固定小数点位数的二进制算术运算符146
7.3.3定义FixedPoint一元算术运算符148
7.3.4实现FixedPoint反向运算符148
7.3.5实现FixedPoint比较运算符150
7.4计算一个数字的哈希值152
7.5实现其他的特殊方法153
7.6原地运算符的优化154
7.7总结155
7.7.1设计要素和折中方案155
7.7.2展望155
……
第8章装饰器和mixin——横切方面156
第2部分持久化和序列化175
第9章序列化和保存——JSON、YAML、Pickle、CSV和XML178
第10章用Shelve保存和获取对象214
第11章用SQLite保存和获取对象235
第12章传输和共享对象263
第13章配置文件和持久化
第3部分测试、调试、部署和维护
第14章Logging和Warning模块
第15章可测试性的设计
第16章使用命令行
第17章模块和包的设计
第18章质量和文档

原文地址:https://www.cnblogs.com/fuchen9527/p/10988989.html

时间: 2024-10-16 20:59:12

python经典书籍推荐:Python面向对象编程指南 : Mastering Object-oriented的相关文章

python经典书籍:Python编程实战 运用设计模式、并发和程序库创建高质量程序

Python编程实战主要关注了四个方面 即:优雅编码设计模式.通过并发和编译后的Python(Cython)使处理速度更快.高层联网和图像.书中展示了在Python中已经过验证有用的设计模式,用专家级的代码阐释了这些设计模式,并解释了为什么一些与面向对象设计相关的模式和Python均有关联. 书中通过大量实用的范例代码和三个完整的案例研究,全面而系统地讲解 了如何运用设计模式来规划代码结构,如何通过 并发与Cython等技术提升代码执行速度,以及如 何利用各科IPython程序库来快速开发具体的

Python面向对象编程指南(高清版)PDF

Python面向对象编程指南(高清版)PDF百度网盘链接:https://pan.baidu.com/s/1SbD4gum4yGcUruH9icTPCQ 提取码:fzk5 复制这段内容后打开百度网盘手机App,操作更方便哦内容简介 · · · · · · Python是一种面向对象.解释型的程序设计语言,它已经被成功应用于科学计算.数据分析以及游戏开发等诸多领域.本书深入介绍Python语言的面向对象特性,全书分3个部分共18章.第1部分讲述用特殊方法实现Python风格的类,分别介绍了init

【转】30本关于asp.net相关的经典书籍推荐

引自:http://blog.csdn.net/shanzhizi/article/details/7731344 一.入门 1.<HTML与CSS入门经典(第7版) >HTML入门       点评:html语言的入门,由于html极其简单所以同类其他书也可代替,本书并非经典,本书摆在这里纯属占位!你可以用其他书代替. 2.<C#入门经典(第3版)>C#入门点评:经典中的经典,个人认为是30本书里最重要的,虽然其他讲C#的好书也很多但大多1.0版的,很多在书店已经绝版,被<

Linux好书、经典书籍推荐

Linux好书.经典书籍推荐 思想篇 <Linux/Unix设计思想> 图书将Unix与Linux的原理有效地结合起来,总结了Unix/Linux软件开发中的原则.在保留了第1版中Unix方面的内容的同时,强调了Linux和开源领域的新思想. 入门篇 <Linux程序设计(第4版)> <Linux程序设计>是Linux程序设计领域的经典名著,以简单易懂.内容全面和示例丰富而受到广泛好评.中文版前两版出版后,在国内的Linux爱好者和程序员中也引起了强烈反响,这一热潮一直

《JavaScript面向对象编程指南》读书笔记②

概述 <JavaScript面向对象编程指南>读书笔记① 这里只记录一下我看JavaScript面向对象编程指南记录下的一些东西.那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的知识点,以后再看也可当做拾遗之用! 内容 1.枚举属性用for-in循环显示. 2.当我们对对象的prorotype属性进行完全重写时,有可能会对对象constructor属性产生一定的负面影响. 3.uber--子对象访问父对象的方式Triangle.uber = TwoDShape.prototype 4

《JavaScript面向对象编程指南》读书笔记①

概述 JavaScript快忘完了,想看一本专业书拾遗,所以看了这本<JavaScript面向对象编程指南>. 个人觉得这本书讲的很透彻很易懂,一些原来有疑惑的地方在这本书里面豁然开朗,看起来非常爽! 现在我只记录一下我看这本书记录下的一些东西.那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的知识点,以后再看也可当做拾遗之用! 记录 对象,方法,属性和类的通俗解释:对象往往是用名词来表示的(也被称为实例):方法一般都是些动词:属性值则往往是一些形容词:类就是相似对象的共同特征. 什么

Python相关书籍推荐

Python基础教程(第2版 修订版) 作      者 [挪] Magnus Lie Hetland 著:司维,曾军崴,谭颖华 译 出 版 社 人民邮电出版社 出版时间 2014-06-01 版      次 2 页      数 470 印刷时间 2014-06-01 开      本 16开 纸      张 胶版纸 印      数 3 I S B N 9787115353528 推荐指数:★★★★★ 购买地址:立即购买 “笨办法”学Python(第3版 附光盘1张) 作      者

Python基础-第七天-面向对象编程进阶和Socket编程简介

本篇内容: 1.面向对象编程进阶-静态方法 2.面向对象编程进阶-类方法 3.面向对象编程进阶-属性方法 4.面向对象编程进阶-特殊成员(内置方法) 5.面向对象编程进阶-反射 6.异常处理.断言 7.Socket编程简介 一.面向对象编程进阶-静态方法 1.静态方法的实现 通过@staticmethod装饰器可以把其装饰的方法变为一个静态方法: 变成静态方法后,形参中可以不用写self了.如果写了self,默认是不会把对象本身传递给self,需要手动传递: class Dog(object):

python学习笔记day6【面向对象编程】

面向对象编程 一.编程范式:编程的方法论.程序员编程的“套路”及“特点”特点总结,抽象成方法.规范. 二.面向对象编程介绍: 1.描述 世界万物,皆可分类:世间万物,皆为对象:只要是对象,就肯定属于某种品类:只要是对象,就肯定有一定的属性. opp编程(面向对象编程)的抽象机制是将待解问题抽象为面向对象的程序中的对象.利用封装使每个对象都拥有个体的身份.程序便是成堆的对象,彼此通过消息的传递,请求其它对象 进行工作.也可以说opp编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述.