Thinking in Python by Bruce Eckel
Bruce Eckel Thinking in Python Insights, Idioms and Patterns 01Introduction Part I · Foundations 02Tour 03Containers 04Control Flow 05Functions 06Modules and Packages 07Classes 08Static Typing 09Class Attributes 10Cleanup Part II · Techniques 11Testing 12Data Classes as Types 13Pattern Matching 14Decorators 15Context Managers 16Comprehensions 17Metaprogramming 18Performance 19Concurrency Part III · Patterns 20Rethinking Objects 21The Pattern Concept 22Data Transfer Objects 23Iterators 24Singleton 25Template Method 26Surrogate 27Factory 28Function Objects 29Changing the Interface 30Observer 31State Machines 32Multiple Dispatching 33Visitor 34Composite and Interpreter 35Flyweight 36Memento 37Pattern Refactoring 38Simulation 39Pattern Catalog Part IV · Functional Programming 40Foundations 41Toolkits 42Error Handling 43Assurance Part V · Effects 44Effect Management 45Generators 46Stateless 47Stateless in Practice © 2026 Bruce Eckel. Licensed CC BY-NC-ND 4.0. Freely readable online. No reproduction without permission. Book Examples & Exercise Solutions on GitHub