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