主頁 > 後端開發 > Python學習手冊(第4版)PDF高清檔案下載

Python學習手冊(第4版)PDF高清檔案下載

2020-09-10 01:52:15 後端開發

簡介

《Python學習手冊(第4版)》學習Python的主要內建物件型別:數字、串列和字典,使用Python陳述句創建和處理物件,并且學習Python的通用語法模型,使用函式構造和重用代碼,函式是Python的基本程序工具,學習Python模塊:封裝陳述句、函式以及其他工具,以便構建較大的組件,學習Python的面向物件編程工具,用于組織程式代碼,學習例外處理模型,以及用于撰寫較大程式的開發工具,了解高級Python工具,如裝飾器、描述器、元類和Unicode處理等,

優點

Google和YouTube由于PythonF的高可適應性、易于維護以及適合于快速開發而采用它,

將幫助你使用Python撰寫出高質量、高效的并且易于與其他語言和工具集成的代碼,

作者簡介

作為全球Python培訓界的領軍人物,《Python學習手冊:第4版》作者Mark Lutz是Python最暢銷書籍的作者,也是Python社區的先驅,

Mark 是O'Reilly出版的《Programming Python》和《Python Pocket Reference》的作者,這兩本書于2009年都已經出版了第3版,Mark自1992年開始接觸Python,1995年開始撰寫有關Python的書籍,從1997年開始教授Python課程,截止到2009年,他已經開辦了225個Python短期培訓課程,教授了大約3500名學習者,銷售了大約25萬冊有關Python的書籍,許多書被翻譯成十多種語言,

此外,Mark擁有威斯康星大學計算機科學學士和碩士學位,在過去的25年中,他主要從事編譯器、編程工具、腳本程式以及各種客戶端/服務器系統方面的作業,

 

 全網最全Python必讀書藉合集(PDF檔案免費下載)

目錄

前言1

第一部分 使用入門

第1章 問答環節19

人們為何使用Python19

軟體質量20

開發效率21

Python是“腳本語言”嗎21

好吧,Python的缺點是什么呢23

如今誰在使用Python23

使用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

使用IDLE72

高級IDLE工具74

其他的IDE74

其他啟動選項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和stdout319

本章小結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和回圈else338

一般回圈格式338

pass338

continue340

break340

回圈else341

為什么要在意“模擬C 語言的while回圈”342

for回圈343

一般格式343

例子344

為什么要在意“檔案掃描”349

撰寫回圈的技巧350

回圈計數器:while和range351

非完備遍歷:range和分片352

修改串列:range353

并行遍歷:zip和map354

產生偏移和元素:enumerate357

本章小結358

本章習題358

習題解答359

第14章 迭代器和決議,第一部分360

迭代器:初探360

檔案迭代器361

手動迭代:iter和next363

其他內置型別迭代器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

為什么使用nonlocal437

本章小結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

匿名函式: lambda483

lambda運算式483

為什么使用lambda484

如何(不要)讓Python代碼變得晦澀難懂486

嵌套lambda和作用域487

為什么要在意:回呼488

在序列中映射函式:map489

函式式編程工具:filter和reduce490

本章小結492

本章習題492

習題解答492

第20章 迭代和決議,第二部分494

回顧串列決議:函式式編程工具494

串列決議與map495

增加測驗和嵌套回圈496

串列決議和矩陣498

理解串列決議499

為什么要在意:串列決議和map500

重訪迭代器:生成器501

生成器函式:yield VS return502

生成器運算式:迭代器遇到串列決議506

生成器函式 VS 生成器運算式507

生成器是單迭代器物件508

用迭代工具模擬zip和map510

為什么你會留意:單次迭代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

第三方工具:distutils550

本章小結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

概覽OOP621

屬性繼承搜索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和Shelve676

在shelve資料庫中存盤物件677

互動地探索shelve678

更新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和OOP741

通過呼叫標記進行多載(或不要)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

為什么要在意:大師眼中的OOP821

第七部分 例外和工具

第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和except845

合并try的例子846

raise陳述句847

利用raise傳遞例外849

Python 3.0例外鏈:raise from849

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

函式信號條件和raise876

關閉檔案和服務器連接877

在try外進行除錯878

運行行程中的測驗879

關于sys.exc_info879

與例外有關的技巧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中讀取和寫入Unicode922

在Python 3.0中處理BOM924

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

重訪基于委托的Manager967

示例:屬性驗證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

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/396.html

標籤:Python

上一篇:Python基礎教程(第3版)PDF檔案下載

下一篇:Python編程第四版上下冊PDF檔案下載

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more