1. 程式人生 > >PYTHON面向對象編程指南pdf

PYTHON面向對象編程指南pdf

ctf 程序 叠代器 warning lse 基本操作 4.4 3.6 類定義

【下載地址】
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章質量和文檔
· · · · · · (收起)
【下載地址】

PYTHON面向對象編程指南pdf