Python 3面向對象編程

Python 3面向對象編程

Python 是一種面向對象的解釋型語言,面向對象是其非常重要的特性。《Python 3面向對象編程》通過Python 的數據結構、語法、設計模式,從簡單到複雜,從初級到高級,一步步通過例子來展示了Python 中面向對象的概念和原則。

內容提要

Python 是一種面向對象的解釋型語言,面向對象是其非常重要的特性。《Python 3面向對象編程》通過Python 的數據結構、語法、設計模式,從簡單到複雜,從初級到高級,一步步通過例子來展示了Python 中面向對象的概念和原則。

《Python 3面向對象編程》不是Python 的入門書籍,適合具有Python 基礎經驗的開發人員閱讀。如果你擁有其他面向對象語言的經驗,你會更容易理解《Python 3面向對象編程》的內容。

作者簡介

Dusty Phillips 是一名加拿大自由軟體開發人員、教師、武術家以及開源愛好者。他和Arch Linux 社區以及其他開源社區有著緊密聯繫。他維護著Arch Linux 的入口網站以及編譯了流行的Arch Linux 手冊。Dusty 持有計算機科學人機互動方向的碩士學位。他當前在自己的計算機里安裝了6 種不同的Python 解釋器。

譯者簡介

肖鵬,畢業於北京理工大學信息與通信工程專業,2011年起就職于思科系統(中國)信息技術服務有限公司,是一名網路諮詢工程師,具有多年Python網路開發經驗。

常賀,畢業於北京郵電大學計算機科學與技術專業,現就職于思科系統中國公司高級服務部門。他具備多年的網路監控管理系統的開發經驗。

石琳,思科系統(中國)信息技術服務有限公司網路諮詢工程師,具有多年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

相關詞條

相關搜尋

熱門詞條

聯絡我們