Python 3 Patterns, Recipes and Idioms - Read the Docs
,
Python 3 Patterns, Recipes and Idioms
Release 1.0
Bruce Eckel
September 27, 2017
Contents
1
Contributors
1.1 Thanks To . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
2
ToDo List
3
3
The remainder are from context, from the book.
5
4
A Note To Readers
7
5
Introduction
5.1 A Team Effort . . . . . . .
5.2 Not an Introductory Book
5.3 The License . . . . . . . .
5.4 The Printed Book . . . . .
5.5 Translations . . . . . . . .
5.6 My Motives . . . . . . . .
6
Teaching Support
7
Book Development Rules
7.1 Contribute What You Can
7.2 Don¡¯t Get Attached . . . .
7.3 Credit . . . . . . . . . . .
7.4 Mechanics . . . . . . . . .
7.5 Diagrams . . . . . . . . .
8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
9
10
10
10
11
13
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
15
15
16
16
17
Developer Guide
8.1 Getting Started: The Easiest Approach . . . .
8.2 For Windows Users . . . . . . . . . . . . . . .
8.3 Installing Sphinx . . . . . . . . . . . . . . . . .
8.4 Getting the Development Branch of the Book .
8.5 Building the Book . . . . . . . . . . . . . . . .
8.6 Building the PDF . . . . . . . . . . . . . . . . .
8.7 Setting up Mercurial . . . . . . . . . . . . . . .
8.8 Working with BitBucket and Mercurial . . . .
8.9 A Simple Overview Of Editing and Merging .
8.10 Emacs for Editing Restructured Text . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
19
20
20
21
21
21
22
23
23
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
9
Part I: Foundations
10 Python for Programmers
10.1 Scripting vs. Programming
10.2 Built-In Containers . . . . .
10.3 Functions . . . . . . . . . .
10.4 Strings . . . . . . . . . . . .
10.5 Classes . . . . . . . . . . . .
10.6 Useful Techniques . . . . .
10.7 Further Reading . . . . . .
25
.
.
.
.
.
.
.
27
27
28
29
29
30
33
33
11 Initialization and Cleanup
11.1 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 Cleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
35
36
37
12 Unit Testing & Test-Driven Development
12.1 Write Tests First . . . . . . . . . . . . .
12.2 Simple Python Testing . . . . . . . . .
12.3 A Very Simple Framework . . . . . .
12.4 Writing Tests . . . . . . . . . . . . . .
12.5 White-Box & Black-Box Tests . . . . .
12.6 Running tests . . . . . . . . . . . . . .
12.7 Automatically Executing Tests . . . .
12.8 Exercises . . . . . . . . . . . . . . . . .
39
40
40
41
42
44
45
47
47
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13 Python 3 Language Changes
49
14 Decorators
14.1 Decorators vs. the Decorator Pattern . . . . . . .
14.2 History of Macros . . . . . . . . . . . . . . . . .
14.3 The Goal of Macros . . . . . . . . . . . . . . . . .
14.4 What Can You Do With Decorators? . . . . . . .
14.5 Function Decorators . . . . . . . . . . . . . . . .
14.6 Slightly More Useful . . . . . . . . . . . . . . . .
14.7 Using Functions as Decorators . . . . . . . . . .
14.8 Review: Decorators without Arguments . . . .
14.9 Decorators with Arguments . . . . . . . . . . . .
14.10 Decorator Functions with Decorator Arguments
14.11 Further Reading . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
51
51
51
52
52
52
54
54
55
56
58
59
15 Metaprogramming
15.1 Basic Metaprogramming . . . . . . . . . . . .
15.2 The Metaclass Hook . . . . . . . . . . . . . . .
15.3 Example: Self-Registration of Subclasses . . .
15.4 Example: Making a Class ¡°Final¡± . . . . . . .
15.5 Using __init__ vs. __new__ in Metaclasses
15.6 Class Methods and Metamethods . . . . . . .
15.7 The __prepare__() Metamethod . . . . . .
15.8 Module-level __metaclass__ Assignment .
15.9 Metaclass Conflicts . . . . . . . . . . . . . . . .
15.10 Further Reading . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
61
62
64
66
67
68
70
72
73
73
73
16 Generators, Iterators, and Itertools
ii
.
.
.
.
.
.
.
.
.
.
75
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- python 3 beginner s reference cheat sheet http rcher
- an introduction to python for absolute beginners computer science
- python 3 patterns recipes and idioms read the docs
- s python cheat sheet data science free
- python 3 cheat sheet university of washington
- how to sort list of strings in python
- python list sort example
- python data structures
- sorting insertion sort quick sort github pages
- clrs 2 3 4 3 mergesort the master theorem unit 3 a sorting
Related searches
- 3 ingredient recipes dinner
- jupyter notebook and python 3 download
- 3 ingredient recipes with hamburger
- if and statement python 3 statements
- 3 item recipes for dinner
- python 3 7 3 shell download
- 31 questions and answers about the irs revision 3 4
- the best way to read the bible
- 3 ingredient recipes healthy
- english proverbs and idioms pdf
- aesthetic patterns copy and paste
- upgrade python 3 6 to 3 8