Python學習手冊:第4版

基本信息

原書名: Learning Python
原出版社:O'Reilly Media
作者: (美)Mark Lutz
譯者: 李軍 劉紅偉
叢書名: O'Reilly精品圖書系列
出版社:機械工業出版社
ISBN:9787111326533
上架時間:2011-4-14
出版日期:2011 年4月
開本:16開
頁碼:889
版次:4-1

內容簡介

google和youtube由於python的高可適應性、易於維護以及適合於快速開發而採用它。《Python學習手冊:第4版》將幫助你使用python編寫出高質量、高效的並且易於與其他語言和工具集成的代碼。《python學習手冊:第4版》根據python專家mark lutz的著名培訓課程編寫而成,是易於掌握和自學的python教程。
《python學習手冊:第4版》每一章都對python語言的關鍵內容做單獨講解,並且配有章首習題,便於你學習新的技能並鞏固加深自己的理解。書中配有大量注釋的示例以及圖表,它們都將幫助你輕鬆地學習Python 3.0
《python學習手冊:第4版》主要內容
·學習python的主要內建對象類型:數字、列表和字典。
·使用python語句創建和處理對象,並且學習python的通用語法模型。
·使用函式構造和重用代碼,函式是python的基本過程工具。
·學習python模組:封裝語句、函式以及其他工具,以便構建較大的組件。
·學習python的面向對象編程工具,用於組織程式代碼。
·學習異常處理模型,以及用於編寫較大程式的開發工具。
·了解高級python工具,如裝飾器、描述器、元類和unicode處理等。

圖書目錄

《python學習手冊:第4版》
前言 1
第一部分 使用入門
第1章 問答環節 19
人們為何使用python 19
軟體質量 20
開發效率 21
python是“腳本語言”嗎 21
好吧,python的缺點是什麼呢 23
如今誰在使用python 23
使用python可以做些什麼 24
系統編程 25
用戶圖形接口 25
internet腳本 25
組件集成 26
資料庫編程 26
快速原型 27
數值計算和科學計算編程 27
遊戲、圖像、人工智慧、xml、機器人等 27
python如何獲得支持 28
.python有哪些技術上的優點 28
面向對象 28
免費 29
可移植 29
功能強大 30
可混合 31
簡單易用 31
簡單易學 32
python和其他語言比較起來怎么樣 32
本章小結 33
本章習題 33
習題解答 34
python是工程,不是藝術 34
第2章 python如何運行程式 36
python解釋器簡介 36
程式執行 37
程式設計師的視角 37
python的視角 39
執行模組的變體 41
python實現的替代者 42
執行最佳化工具 43
凍結二進制檔案 44
其他執行選項 45
未來的可能性 46
本章小結 46
本章習題 47
習題解答 47
第3章 如何運行程式 48
互動提示模式下編寫代碼 48
互動地運行代碼 49
為什麼使用互動提示模式 51
使用互動提示模式 52
系統命令行和檔案 54
第一段腳本 55
使用命令行運行檔案 56
使用命令行和檔案 57
unix可執行腳本(#!) 58
unix env查找技巧 59
點擊檔案圖示 60
在windows中點擊圖示 60
input的技巧 61
圖示點擊的其他限制 63
模組導入和重載 63
模組的顯要特性:屬性 65
import和reload的使用注意事項 68
使用exec運行模組檔案 69
idle用戶界面 70
idle基礎 71
使用idle 72
高級idle工具 74
其他的ide 74
其他啟動選項 76
嵌入式調用 76
凍結二進制的可執行性 77
文本編輯器啟動的選擇 77
其他的啟動選擇 77
未來的可能 77
我應該選用哪種 78
調試python代碼 78
本章小結 80
本章習題 80
習題解答 80
第一部分 練習題 81
第二部分 類型和運算
第4章 介紹python對象類型 87
為什麼使用內置類型 88
python的核心數據類型 88
數字 90
字元串 92
序列的操作 92
不可變性 94
類型特定的方法 94
尋求幫助 96
編寫字元串的其他方法 97
模式匹配 98
列表 98
序列操作 98
類型特定的操作 99
邊界檢查 100
嵌套 100
列表解析 101
字典 103
映射操作 103
重訪嵌套 104
鍵的排序:for 循環 105
疊代和最佳化 107
不存在的鍵:if 測試 107
元組 109
為什麼要用元組 109
檔案 110
其他檔案類工具 111
其他核心類型 111
如何破壞代碼的靈活性 113
用戶定義的類 114
剩餘的內容 115
本章小結 115
本章習題 116
習題解答 116
第5章 數字 117
python的數字類型 117
數字常量 118
內置數學工具和擴展 119
python表達式操作符 120
在實際套用中的數字 125
變數和基本的表達式 125
數字顯示的格式 126
比較:一般的和連續的 127
str和repr顯示格式 128
除法: 傳統除法、floor除法和真除法 129
整數精度 133
複數 133
十六進制、八進制和二進制記數 134
位操作 136
其他的內置數學工具 137
其他數字類型 139
小數數字 139
分數類型 141
集合 145
布爾型 151
字擴展 152
本章小結 153
本章習題 153
習題解答 153
第6章 動態類型簡介 155
缺少類型聲明語句的情況 155
變數、對象和引用 156
類型屬於對象,而不是變數 157
對象的垃圾收集 158
共享引用 159
共享引用和在原處修改 161
共享引用和相等 163
動態類型隨處可見 164
本章小結 165
本章習題 165
習題解答 165
第7章 字元串 167
字元串常量 169
單雙引號字元串是一樣的 170
用轉義序列代表特殊位元組 171
raw字元串抑制轉義 173
三重引號編寫多行字元串塊 175
實際套用中的字元串 176
基本操作 176
索引和分片 177
為什麼要在意:分片 181
字元串轉換工具 181
修改字元串 184
字元串方法 185
字元串方法實例:修改字元串 187
字元串方法實例:文本解析 189
實際套用中的其他常見字元串方法 190
最初的字元串模組(在python 3.0中刪除) 191
字元串格式化表達式 192
更高級的字元串格式化表達式 194
基於字典的字元串格式化 196
字元串格式化調用方法 196
基礎知識 197
添加鍵、屬性和偏移量 198
添加具體格式化 198
與%格式化表達式比較 200
為什麼用新的格式化方法 203
通常意義下的類型分類 206
同樣分類的類型共享其操作集合 206
可變類型能夠在原處修改 207
本章小結 208
本章習題 208
習題解答 208
第8章 列表與字典 210
列表 210
實際套用中的列表 213
基本列表操作 213
列表疊代和解析 213
索引、分片和矩陣 214
原處修改列表 215
字典 220
實際套用中的字典 222
字典的基本操作 222
原處修改字典 223
其他字典方法 224
語言表 225
字典用法注意事項 226
為什麼要在意字典接口 229
創建字典的其他方法 230
python 3.0中的字典變化 231
本章小結 237
本章習題 237
習題解答 237
第9章 元組、檔案及其他 239
元組 239
實際套用中的元組 241
為什麼有了列表還要元組 243
檔案 243
打開檔案 244
使用檔案 245
實際套用中的檔案 246
其他檔案工具 252
重訪類型分類 254
為什麼要在意操作符重載 255
對象靈活性 255
引用 vs 拷貝 256
比較、相等性和真值 258
python 3.0的字典比較 260
python中真和假的含義 261
python的類型層次 263
type對象 263
python中的其他類型 265
內置類型陷阱 265
賦值生成引用,而不是拷貝 265
重複能夠增加層次深度 266
留意循環數據結構 266
不可變類型不可以在原處改變 267
本章小結 267
本章習題 268
習題解答 268
第二部分練習題 269
第三部分 語句和語法
第10章 python語句簡介 275
重訪python程式結構 275
python的語句 276
兩個if的故事 278
python增加了什麼 279
python刪除了什麼 279
為什麼使用縮進語法 281
幾個特殊實例 283
簡短實例:互動循環 285
一個簡單的互動式循環 285
對用戶輸入數據做數學運算 287
用測試輸入數據來處理錯誤 288
用try語句處理錯誤 289
嵌套代碼三層 290
本章小結 290
本章習題 291
習題解答 291
第11章 賦值、表達式和列印 292
賦值語句 292
賦值語句的形式 293
序列賦值 294
python 3.0中的擴展序列解包 297
多目標賦值語句 301
增強賦值語句 302
變數命名規則 305
python的廢棄協定 306
表達式語句 308
表達式語句和在原處的修改 309
列印操作 310
python 3.0的print函式 311
python 2.6 print語句 313
列印流重定向 315
版本獨立的列印 318
為什麼要注意print和stdout 319
本章小結 320
本章習題 321
習題解答 321
第12章 if測試和語法規則 322
if語句 322
通用格式 322
基本例子 323
多路分支 323
python語法規則 325
代碼塊分隔設定 326
語句的分隔設定 328
一些特殊情況 329
真值測試 330
if/else三元表達式 332
為什麼要在意布爾值 334
本章小結 335
本章習題 335
習題解答 335
第13章 while和for循環 336
while循環 336
一般格式 336
例子 337
break、continue、pass和循環else 338
一般循環格式 338
pass 338
continue 340
break 340
循環else 341
為什麼要在意“模擬c 語言的while循環” 342
for循環 343
一般格式 343
例子 344
為什麼要在意“檔案掃描” 349
編寫循環的技巧 350
循環計數器:while和range 351
非完備遍歷:range和分片 352
修改列表:range 353
並行遍歷:zip和map 354
產生偏移和元素:enumerate 357
本章小結 358
本章習題 358
習題解答 359
第14章 疊代器和解析,第一部分 360
疊代器:初探 360
檔案疊代器 361
手動疊代:iter和next 363
其他內置類型疊代器 365
列表解析:初探 367
列表解析基礎知識 368
在檔案上使用列表解析 369
擴展的列表解析語法 370
其他疊代環境 371
python 3.0中的新的可疊代對象 375
range疊代器 376
map、zip和filter疊代器 377
多個疊代器 vs單個疊代器 378
字典視圖疊代器 379
其他疊代器主題 381
本章小結 381
本章習題 381
習題解答 382
第15章 文檔 383
python文檔資源 383
#注釋 384
Dir函式 384
文檔字元串:__doc__ 385
pydoc:help函式 388
pydoc:html報表 390
標準手冊集 393
網路資源 394
已出版的書籍 394
常見編寫代碼的陷阱 395
本章小結 397
本章習題 397
習題解答 397
第三部分練習題 398
第四部分 函式
第16章 函式基礎 403
為何使用函式 404
編寫函式 405
def語句 406
def語句是實時執行的 407
第一個例子:定義和調用 408
定義 408
調用 408
python中的多態 409
第二個例子:尋找序列的交集 410
定義 410
調用 411
重訪多態 411
本地變數 412
本章小結 413
本章習題 413
習題解答 413
第17章 作用域 415
python作用域基礎 415
作用域法則 416
變數名解析:legb原則 418
作用域實例 419
內置作用域 420
在python 2.6中違反通用性 422
global語句 422
最小化全局變數 423
最小化檔案間的修改 424
其他訪問全局變數的方法 426
作用域和嵌套函式 427
嵌套作用域的細節 427
嵌套作用域舉例 427
nonlocal語句 433
nonlocal基礎 433
nonlocal套用 435
為什麼使用nonlocal 437
本章小結 440
本章習題 441
習題解答 442
第18章 參數 444
傳遞參數 444
參數和共享引用 445
避免可變參數的修改 447
對參數輸出進行模擬 448
特定的參數匹配模型 449
基礎知識 449
匹配語法 450
細節 452
關鍵字參數和默認參數的實例 452
任意參數的實例 455
python 3.0 keyword-only參數 459
min調用 462
滿分 463
加分點 464
結論 465
一個更有用的例子:通用set函式 465
模擬python 3.0 print函式 466
使用keyword-only參數 467
為什麼要在意:關鍵字參數 469
本章小結 469
本章習題 470
習題解答 470
第19章 函式的高級話題 472
函式設計概念 472
遞歸函式 474
用遞歸求和 474
編碼替代方案 475
循環語句vs遞歸 476
處理任意結構 477
函式對象:屬性和註解 478
間接函式調用 478
函式內省 479
函式屬性 480
python 3.0中的函式註解 481
匿名函式: lambda 483
Lambda表達式 483
為什麼使用lambda 484
如何(不要)讓python代碼變得晦澀難懂 486
嵌套lambda和作用域 487
為什麼要在意:回調 488
在序列中映射函式:map 489
函式式編程工具:filter和reduce 490
本章小結 492
本章習題 492
習題解答 492
第20章 疊代和解析,第二部分 494
回顧列表解析:函式式編程工具 494
列表解析與map 495
增加測試和嵌套循環 496
列表解析和矩陣 498
理解列表解析 499
為什麼要在意:列表解析和map 500
重訪疊代器:生成器 501
生成器函式:yield vs return 502
生成器表達式:疊代器遇到列表解析 506
生成器函式 vs 生成器表達式 507
生成器是單疊代器對象 508
用疊代工具模擬zip和map 510
為什麼你會留意:單次疊代 514
內置類型和類中的值生成 515
python 3.0解析語法概括 516
解析集合和字典解析 517
針對集合和字典的擴展的解析語法 517
對疊代的各種方法進行計時 518
對模組計時 519
計時腳本 519
計時結果 520
計時模組替代方案 523
其他建議 527
函式陷阱 528
本地變數是靜態檢測的 528
默認和可變對象 529
沒有return語句的函式 531
嵌套作用域的循環變數 532
本章小結 532
本章習題 532
習題解答 533
第四部分練習題 533
第五部分 模組
第21章 模組:宏偉藍圖 539
為什麼使用模組 540
python程式架構 540
如何組織一個程式 541
導入和屬性 541
標準庫模組 543
import如何工作 543
1.搜尋 544
2.編譯(可選) 544
3.運行 545
模組搜尋路徑 545
配置搜尋路徑 547
搜尋路徑的變動 548
sys.path列表 548
模組檔案選擇 549
高級的模組選擇概念 550
第三方工具:distutils 550
本章小結 551
本章習題 551
習題解答 551
第22章 模組代碼編寫基礎 553
模組的創建 553
模組的使用 554
import語句 554
from語句 555
from *語句 555
導入只發生一次 555
import和from是賦值語句 556
檔案間變數名的改變 557
import和from的對等性 557
from語句潛在的陷阱 558
模組命名空間 560
檔案生成命名空間 560
屬性名的點號運算 562
導入和作用域 562
命名空間的嵌套 563
重載模組 564
reload基礎 565
reload實例 566
為什麼要在意:模組重載 567
本章小結 568
本章習題 568
習題解答 568
第23章 模組包 570
包導入基礎 570
包和搜尋路徑設定 571
__init__.py包檔案 572
包導入實例 573
包對應的from語句和import語句 574
為什麼要使用包導入 575
三個系統的傳說 576
包相對導入 578
python 3.0中的變化 578
相對導入基礎知識 579
為什麼使用相對導入 581
相對導入的作用域 583
模組查找規則總結 583
相對導入的套用 584
為什麼要在意:模組包 589
本章小結 590
本章習題 590
習題解答 590
第24章 高級模組話題 592
在模組中隱藏數據 592
最小化from *的破壞:_x和__all__ 593
啟用以後的語言特性 593
混合用法模式:__name__和__main__ 594
以__name__進行單元測試 595
使用帶有__name__的命令行參數 596
修改模組搜尋路徑 599
import語句和from語句的as擴展 599
模組是對象:元程式 600
用名稱字元串導入模組 603
過渡性模組重載 604
模組設計理念 607
模組陷阱 607
頂層代碼的語句次序的重要性 608
from複製變數名,而不是連線 609
from *會讓變數語義模糊 610
reload不會影響from導入 610
reload、from以及互動模式測試 611
遞歸形式的from導入無法工作 612
本章小結 613
本章習題 613
習題解答 613
第五部分練習題 614
第六部分 類和oop
第25章 oop:宏偉藍圖 619
為何使用類 620
概覽oop 621
屬性繼承搜尋 621
類和實例 623
類方法調用 624
編寫類樹 624
oop是為了代碼重用 627
本章小結 629
本章習題 629
習題解答 630
第26章 類代碼編寫基礎 631
類產生多個實例對象 631
類對象提供默認行為 632
實例對象是具體的元素 632
第一個例子 632
類通過繼承進行定製 635
第二個例子 635
類是模組內的屬性 637
類可以截獲python運算符 638
第三個例子 639
為什麼要使用運算符重載 641
世界上最簡單的python類 641
類與字典的關係 644
本章小結 646
本章習題 646
習題解答 646
第27章 更多實例 649
步驟1:創建實例 650
編寫構造函式 650
在進行中測試 651
以兩種方式使用代碼 652
版本差異提示 654
步驟2:添加行為方法 654
編寫方法 656
步驟3:運算符重載 658
提供列印顯示 658
步驟4:通過子類定製行為 659
編寫子類 660
擴展方法:不好的方式 660
擴展方法:好的方式 661
多態的作用 663
繼承、定製和擴展 664
oop:大思路 664
步驟5:定製構造函式 665
oop比我們認為的要簡單 666
組合類的其他方式 667
在python 3.0中捕獲內置屬性 669
步驟6:使用內省工具 670
特殊類屬性 670
一種通用顯示工具 671
實例與類屬性的關係 672
工具類的命名考慮 673
類的最終形式 674
步驟7(最後一步):把對象存儲到資料庫中 676
pickle和shelve 676
在shelve資料庫中存儲對象 677
互動地探索shelve 678
更新shelve中的對象 680
未來方向 681
本章小結 683
本章習題 684
習題解答 684
第28章 類代碼編寫細節 686
class語句 686
一般形式 686
例子 687
方法 689
例子 690
調用超類構造函式 691
其他方法調用的可能性 691
繼承 692
屬性樹的構造 692
繼承方法的專有化 693
類接口技術 694
抽象超類 695
python 2.6和python 3.0的抽象超類 696
命名空間:完整的內容 698
簡單變數名:如果賦值就不是全局變數 698
屬性名稱:對象命名空間 698
python命名空間的“禪”:賦值將變數名分類 699
命名空間字典 701
命名空間鏈接 704
回顧文檔字元串 706
類與模組的關係 707
本章小結 708
本章習題 708
習題解答 708
第29章 運算符重載 710
基礎知識 710
構造函式和表達式:__init__和__sub__ 711
常見的運算符重載方法 711
索引和分片:__getitem__和__setitem__ 713
攔截分片 713
python 2.6中的分片和索引 715
索引疊代:__getitem__ 716
疊代器對象:__iter__和__next__ 717
用戶定義的疊代器 717
有多個疊代器的對象 719
成員關係:__contains__、__iter__和__getitem__ 721
屬性引用:__getattr__和__setattr__ 723
其他屬性管理工具 725
模擬實例屬性的私有性:第一部分 725
__repr__和__str__會返回字元串表達形式 726
右側加法和原處加法:__radd__和__iadd__ 729
原處加法 730
call表達式:__call__ 731
函式接口和回調代碼 732
比較:__lt__、__gt__和其他方法 734
python 2.6的__cmp__方法(已經從python 3.0中移除了) 734
布爾測試:__bool__和__len__ 735
python 2.6中的布爾 736
對象析構函式:__del__ 738
本章小結 739
本章習題 739
習題解答 739
第30章 類的設計 741
python和oop 741
通過調用標記進行重載(或不要) 742
oop和繼承:“是一個”關係 743
oop和組合:“有一個”關係 744
重訪流處理器 746
為什麼要在意:類和持續性 748
oop和委託:“包裝”對象 749
類的偽私有屬性 751
變數名壓縮概覽 751
為什麼使用偽私有屬性 752
方法是對象:綁定或無綁定 754
在python 3.0中,無綁定方法是函式 756
綁定方法和其他可調用對象 757
為什麼要在意:綁定方法和回調函式 760
多重繼承:“混合”類 760
編寫混合顯示類 761
類是對象:通用對象的工廠 771
為什麼有工廠 772
與設計相關的其他話題 773
本章小結 773
本章習題 774
習題解答 774
第31章 類的高級主題 775
擴展內置類型 775
通過嵌入擴展類型 776
通過子類擴展類型 777
新式類 779
新式類變化 780
類型模式變化 781
鑽石繼承變動 785
新式類的擴展 789
slots實例 789
類特性 793
__getattribute__和描述符 795
元類 795
靜態方法和類方法 796
為什麼使用特殊方法 796
python 2.6和python 3.0中的靜態方法 797
靜態方法替代方案 799
使用靜態和類方法 800
使用靜態方法統計實例 801
用類方法統計實例 802
裝飾器和元類:第一部分 805
函式裝飾器基礎 805
裝飾器例子 806
類裝飾器和元類 807
更多詳細信息 808
類陷阱 809
修改類屬性的副作用 809
修改可變的類屬性也可能產生副作用 810
多重繼承:順序很重要 811
類、方法以及嵌套作用域 812
python中基於委託的類:__getattr__和內置函式 814
“過度包裝” 814
本章小結 815
本章習題 815
習題解答 815
第六部分練習題 816
為什麼要在意:大師眼中的oop 821
第七部分 異常和工具
第32章 異常基礎 825
為什麼使用異常 826
異常的角色 826
異常處理:簡明扼要 827
默認異常處理器 827
捕獲異常 828
引發異常 829
用戶定義的異常 830
終止行為 830
為什麼要在意:錯誤檢查 832
本章小結 833
本章習題 833
習題解答 834
第33章 異常編碼細節 835
try/except/else語句 835
try語句分句 836
try/else分句 839
例子:默認行為 840
例子:捕捉內置異常 841
try/finally語句 841
例子:利用try/finally編寫終止行為 842
統一try/except/finally語句 843
統一try語句語法 845
通過嵌套合併finally和except 845
合併try的例子 846
raise語句 847
利用raise傳遞異常 849
python 3.0異常鏈:raise from 849
assert語句 850
例子:收集約束條件(但不是錯誤) 850
with/as環境管理器 851
基本使用 852
環境管理協定 853
本章小結 855
本章習題 855
習題解答 856
第34章 異常對象 857
異常:回到未來 858
字元串異常很簡單 858
基於類的異常 858
類異常例子 859
為什麼使用類異常 861
內置exception類 864
內置異常分類 865
默認列印和狀態 866
定製列印顯示 867
定製數據和行為 868
提供異常細節 868
提供異常方法 869
本章小結 870
本章習題 870
習題解答 870
第35章 異常的設計 872
嵌套異常處理器 872
例子:控制流程嵌套 873
例子:語法嵌套化 874
異常的習慣用法 876
異常不總是錯誤 876
函式信號條件和raise 876
關閉檔案和伺服器連線 877
在try外進行調試 878
運行進程中的測試 879
關於sys.exc_info 879
與異常有關的技巧 880
應該包裝什麼 881
捕捉太多:避免空except語句 881
捕捉過少:使用基於類的分類 883
核心語言總結 884
python工具集 884
大型項目的開發工具 885
本章小結 888
第七部分練習題 889
第八部分 高級話題注1
第36章 unicode和位元組字元串 893
python 3.0中的字元串修改 894
字元串基礎知識 895
字元編碼方法 895
python的字元串類型 897
文本和二進制檔案 899
python 3.0中的字元串套用 900
常量和基本屬性 900
轉換 901
編碼unicode字元串 903
編碼ascii文本 903
編碼非ascii文本 904
編碼和解碼非ascii文本 904
其他unicode編碼技術 905
轉換編碼 907
在python 2.6中編碼unicode字元串 908
源檔案字元集編碼聲明 910
使用python 3.0 bytes對象 911
方法調用 912
序列操作 913
創建bytes對象的其他方式 913
混合字元串類型 914
使用python 3.0(和python 2.6)bytearray對象 915
使用文本檔案和二進制檔案 918
文本檔案基礎 919
python 3.0中的文本和二進制模式 919
類型和內容錯誤匹配 921
使用unicode檔案 922
在python 3.0中讀取和寫入unicode 922
在python 3.0中處理bom 924
python 2.6中的unicode檔案 927
python 3.0中其他字元串工具的變化 927
re模式匹配模組 927
struct二進制數據模組 928
pickle對象序列化模組 931
xml解析工具 932
本章小結 935
本章習題 935
習題解答 936
第37章 管理屬性 938
為什麼管理屬性 938
插入在屬性訪問時運行的代碼 939
特性 940
基礎知識 940
第一個例子 941
計算的屬性 942
使用裝飾器編寫特性 943
描述符 944
基礎知識 945
第一個示例 947
計算的屬性 949
在描述符中使用狀態信息 950
特性和描述符是如何相關的 952
__getattr__和__getattribute__ 953
基礎知識 954
第一個示例 956
計算屬性 958
__getattr__和__getattribute__比較 959
管理技術比較 960
攔截內置操作屬性 963
重訪基於委託的manager 967
示例:屬性驗證 970
使用特性來驗證 971
使用描述符驗證 973
使用__getattr__來驗證 974
使用__getattribute__驗證 976
本章小結 977
本章習題 977
習題解答 977
第38章 裝飾器 979
什麼是裝飾器 979
管理調用和實例 980
管理函式和類 980
使用和定義裝飾器 981
為什麼使用裝飾器 981
基礎知識 982
函式裝飾器 982
類裝飾器 986
裝飾器嵌套 988
裝飾器參數 990
裝飾器管理函式和類 991
編寫函式裝飾器 991
跟蹤調用 992
狀態信息保持選項 993
類錯誤之一:裝飾類方法 997
計時調用 1002
添加裝飾器參數 1004
編寫類裝飾器 1007
單體類 1007
跟蹤對象接口 1009
類錯誤之二:保持多個實例 1012
裝飾器與管理器函式的關係 1013
為什麼使用裝飾器(重訪) 1015
直接管理函式和類 1016
示例:“私有”和“公有”屬性 1018
實現私有屬性 1019
實現細節之一 1021
公有聲明的泛化 1022
實現細節之二 1024
開放問題 1025
python不是關於控制 1029
示例:驗證函式參數 1030
目標 1030
針對位置參數的一個基本範圍測試裝飾器 1031
針對關鍵字和默認泛化 1033
實現細節 1036
開放問題 1038
裝飾器參數 vs 函式註解 1039
其他應用程式:類型測試 1041
本章小結 1042
本章習題 1042
習題解答 1043
第39章 元類 1046
要么是元類,要么不是元類 1046
提高魔力層次 1047
“輔助”函式的缺點 1049
元類與類裝飾器的關係:第一回合 1051
元類模型 1053
類是類型的實例 1053
元類是type的子類 1055
class語句協定 1056
聲明元類 1057
編寫元類 1058
基本元類 1058
定製構建和初始化 1059
其他元類編程技巧 1060
實例與繼承的關係 1063
示例:向類添加方法 1064
手動擴展 1064
基於元類的擴展 1065
元類與類裝飾器的關係:第二回合 1067
示例:對方法套用裝飾器 1070
用裝飾器手動跟蹤 1070
用元類和裝飾器跟蹤 1071
把任何裝飾器套用於方法 1073
元類與類裝飾器的關係:第三回合 1074
“可選的”語言功能 1076
本章小結 1078
本章習題 1078
習題解答 1078
第九部分 附錄注2
附錄a 安裝和配置 1083
附錄b 各部分練習題的解答 1093

譯者序

Python是一種簡單的、解釋型的、互動式的、可移植的、面向對象的超高級語言。Python作為一種功能強大且通用的程式語言而廣受好評,它具有非常清晰的語法特點,適用於多種作業系統,目前在國際上非常流行,正在得到越來越多的套用。
Python有一個互動式的開發環境,因為Python是解釋運行,這大大節省了每次編譯的時間。Python語法簡單,且內置了多種高級數據結構,如字典、列表等,所以使用起來特別簡單,程式設計師很快就可學會並掌握它。Python具有大部分面向對象語言的特徵,可完全進行面向對象編程。Python具有簡單易用、可移植性強等特點,得到了眾多程式設計師的青睞。它可以在MS-DOS、Windows、Windows NT、Linux等多種作業系統上運行。在最新的tiobe開發語言排行中,Python名列第七。
本書是學習Python編程語言的入門書籍,目標是讓讀者快速掌握核心Python語言基礎。本書設計成一本教程,主要關注核心Python語言本身,而不是其特定的應用程式。本書基於一個帶有測試和練習的3天的Python培訓課程,所以可以充當該語言的一個自學教程。本書至今已更新至第4版,每一版都得到廣大讀者的喜愛。本書內容詳盡,從Python語言最基礎和最核心的功能開始介紹,每章、每部分都配有豐富的習題,幫助讀者鞏固所學的知識。
本書篇幅很大,作者的介紹力求詳盡而細緻,有些地方難免顯得冗長。加上新版的翻譯工作量非常巨大,譯者團隊為此付出了艱辛的工作和努力,犧牲了很多的時間。但由於內容的廣度和深度,難免有未盡之處,還請讀者多多批評指正。參加本書翻譯工作的有李軍、劉金華劉偉超、羅庚臣、劉二然、鄭芳菲、莊逸川、王世高郭瑩、陳垚、鄧勇、何進偉、賈曉斌、汪蔚、齊國濤、劉紅偉、景龍、景文正、孫海軍、李振勝、李秋強、楚亞軍、景文生、王志剛、安寧寧、黨耀雲等。

作者簡介

作為全球Python培訓界的領軍人物。Mark Lutz是Python最暢銷書籍的作者,也是Python社區的先驅。
Mark 是O扲eilly出版的《Programming Python》和《Python Pocket Reference》的作者,這兩本書於2009年都已經出版了第3版。Mark自1992年開始接觸Python,1995年開始撰寫有關Python的書籍,從1997年開始教授Python課程。截止到2009年,他已經開辦了225個Python短期培訓課程,教授了大約3500名學習者,銷售了大約25萬冊有關Python的書籍。許多書被翻譯成十多種語言。

媒體評論

“對於那些想要開始使用Python編程的人來說,本書是我所推薦圖書中的首選。”
——Doug Hellmann,Racemi公司, 高級軟體工程師

相關詞條

相關搜尋

熱門詞條

聯絡我們