2019-04-06 12:11:08 +02:00
|
|
|
|
# Fluent Python 2e example code
|
|
|
|
|
|
|
|
|
|
Example code for the book **Fluent Python, 2<sup>nd</sup> edition** by Luciano Ramalho (O'Reilly, 2020).
|
|
|
|
|
|
2019-04-06 12:21:21 +02:00
|
|
|
|
> **BEWARE**: This is a work in progress, like the book itself.
|
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
|
|
|
|
|
|
|
|
|
|
This table of contents is subject to change at any time until the book is in print.
|
|
|
|
|
|
|
|
|
|
New chapters in **Fluent Python 2e** are marked with 🆕.
|
|
|
|
|
|
2019-04-06 12:11:08 +02:00
|
|
|
|
|
|
|
|
|
Part|Chapter|Chapter Title|Directory|1<sup>st</sup> ed. Directory
|
|
|
|
|
---|---:|---|---|---
|
|
|
|
|
I – Prologue|1|The Python Data Model|[01-data-model](01-data-model)|01-data-model
|
|
|
|
|
II – Data Structures|2|An Array of Sequences|[02-array-seq](02-array-seq)|02-array-seq
|
|
|
|
|
|3|Dictionaries and Sets|[03-dict-set](03-dict-set)|03-dict-set
|
|
|
|
|
|4|Text versus Bytes|[04-text-byte](04-text-byte)|04-text-byte
|
|
|
|
|
|5|Record-like Data Structures 🆕|[05-record-like](05-record-like)|
|
|
|
|
|
III – Functions as Objects|6|First-Class Funcions|[06-1class-func](06-1class-func)|05-1class-func
|
|
|
|
|
|7|Design Patterns with First-Class Functions|[07-dp-1class-func](07-dp-1class-func)|06-dp-1class-func
|
|
|
|
|
|8|Function Decorators and Closures|[08-closure-deco](08-closure-deco)|07-closure-deco
|
|
|
|
|
|9|Type Hints in Function Definitions 🆕|[09-def-type-hints](09-def-type-hints)|
|
|
|
|
|
IV – Object-Oriented Idioms|10|Object References, Mutability, and Recycling|[10-obj-ref](10-obj-ref)|08-obj-ref
|
|
|
|
|
|11|A Pythonic Object|[11-pythonic-obj](11-pythonic-obj)|09-pythonic-obj
|
|
|
|
|
|12|Sequence Hacking, Hashing, and Slicing|[12-seq-hacking](12-seq-hacking)|10-seq-hacking
|
|
|
|
|
|13|Interfaces: From Protocols to ABCs|[13-iface-abc](13-iface-abc)|11-iface-abc
|
|
|
|
|
|14|Inheritance: For Good or For Worse|[14-inheritance](14-inheritance)|12-inheritance
|
|
|
|
|
|15|Type Hints Distilled 🆕|[15-type-hints](15-type-hints)|
|
|
|
|
|
|16|Operator Overloading: Doing It Right|[16-op-overloading](16-op-overloading)|13-op-overloading
|
|
|
|
|
V – Control Flow|17|Iterables, Iterators, and Generators|[17-it-generator](17-it-generator)|14-it-generator
|
|
|
|
|
|18|Context Managers and else Blocks|[18-context-mngr](18-context-mngr)|15-context-mngr
|
2019-04-06 12:17:48 +02:00
|
|
|
|
|19|Native Coroutines|[19-coroutine](19-coroutine)|16-coroutine
|
2019-04-06 12:11:08 +02:00
|
|
|
|
|20|Concurrency with Futures|[20-futures](20-futures)|17-futures
|
|
|
|
|
|21|Concurrency with asyncio|[21-asyncio](21-asyncio)|18-asyncio
|
|
|
|
|
VI – Metaprogramming|22|Dynamic Attributes and Properties|[22-dyn-attr-prop](22-dyn-attr-prop)|19-dyn-attr-prop
|
|
|
|
|
|23|Attribute Descriptors|[23-descriptor](23-descriptor)|20-descriptor
|
|
|
|
|
|24|Class Metapgrogramming|[24-class-metaprog](24-class-metaprog)|21-class-metaprog
|
|
|
|
|
|