01-data-model | ||
02-array-seq | ||
03-dict-set | ||
04-text-byte | ||
05-record-like | ||
06-obj-ref | ||
07-1class-func | ||
08-def-type-hints | ||
09-closure-deco | ||
10-dp-1class-func | ||
11-pythonic-obj | ||
12-seq-hacking | ||
13-protocol-abc | ||
14-inheritance | ||
15-more-types | ||
16-op-overloading | ||
17-it-generator | ||
18-context-mngr | ||
19-coroutine | ||
20-concurrency | ||
21-futures | ||
22-async | ||
23-dyn-attr-prop | ||
24-descriptor | ||
25-class-metaprog | ||
.gitignore | ||
LICENSE | ||
pytest.ini | ||
README.md |
Fluent Python 2e example code
Example code for the book Fluent Python, 2nd edition by Luciano Ramalho (O’Reilly, 2020).
BEWARE: This is a work in progress!
Code here may change and disappear without warning.
Major reorganizations may happen at any time.
No promises. No guarantees. Use at own risk.
Table of Contents
All chapters are undergoing review and updates, including significant rewrites in the chapters about concurrency in Part V.
New chapters in Fluent Python 2e are marked with 🆕.
🚨 This table of contents is subject to change at any time until the book goes to the printer.
Part / Chapter # | Title | Directory | Notebook | 1st ed. Chapter # |
---|---|---|---|---|
I – Prologue | ||||
1 | The Python Data Model | 01-data-model | data-model.ipynb | 1 |
II – Data Structures | ||||
2 | An Array of Sequences | 02-array-seq | array-seq.ipynb | 2 |
3 | Dictionaries and Sets | 03-dict-set | 3 | |
4 | Text versus Bytes | 04-text-byte | 4 | |
🆕 5 | Record-like Data Structures | 05-record-like | – | |
6 | Object References, Mutability, and Recycling | 06-obj-ref | 8 | |
III – Functions as Objects | ||||
7 | First-Class Funcions | 07-1class-func | 5 | |
🆕 8 | Type Hints in Function Definitions | 08-def-type-hints | – | |
9 | Function Decorators and Closures | 09-closure-deco | 7 | |
10 | Design Patterns with First-Class Functions | 10-dp-1class-func | 6 | |
IV – Object-Oriented Idioms | ||||
11 | A Pythonic Object | 11-pythonic-obj | 9 | |
12 | Sequence Hacking, Hashing, and Slicing | 12-seq-hacking | 10 | |
13 | Interfaces, Protocols, and ABCs | 13-protocl-abc | 11 | |
14 | Inheritance: For Good or For Worse | 14-inheritance | 12 | |
🆕 15 | More About Type Hints | 15-more-types | – | |
16 | Operator Overloading: Doing It Right | 16-op-overloading | 13 | |
V – Control Flow | ||||
17 | Iterables, Iterators, and Generators | 17-it-generator | 14 | |
18 | Context Managers and else Blocks | 18-context-mngr | 15 | |
19 | Classic Coroutines | 19-coroutine | 16 | |
🆕 20 | Concurrency Models in Python | 20-concurrency | - | |
21 | Concurrency with Futures | 21-futures | 17 | |
22 | Asynchronous Programming | 22-async | 18 | |
VI – Metaprogramming | ||||
23 | Dynamic Attributes and Properties | 22-dyn-attr-prop | 19 | |
24 | Attribute Descriptors | 23-descriptor | 20 | |
25 | Class Metaprogramming | 24-class-metaprog | 21 |