GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Introduction
  • Tour
  • solutions
  • Containers
  • solutions
  • Control Flow
  • solutions
  • Functions
  • solutions
  • Modules and Packages
  • solutions
  • Classes
  • solutions
  • Static Types

This view

  • Original page
  • New address

GeezerVison is showing thinkinginpython.com — Thinking in Python: Fluency, Types, and Design

Bruce Eckel

Thinking in Python

Fluency, Types, and Design

A python as an ouroboros, coiled into an infinity sign

Download the book: PDF and EPUB

Book Examples & Exercise Solutions on GitHub

  • 01Introduction
  • Part I · Foundations
  • 02Toursolutions
  • 03Containerssolutions
  • 04Control Flowsolutions
  • 05Functionssolutions
  • 06Modules and Packagessolutions
  • 07Classessolutions
  • 08Static Typessolutions
  • 09Class Attributessolutions
  • 10Cleanupsolutions
  • Part II · Techniques
  • 11Testingsolutions
  • 12Data Classes as Typessolutions
  • 13Pattern Matchingsolutions
  • 14Decoratorssolutions
  • 15Context Managerssolutions
  • 16Comprehensionssolutions
  • 17Metaprogrammingsolutions
  • 18Performancesolutions
  • 19Concurrencysolutions
  • Part III · Patterns
  • 20Rethinking Objectssolutions
  • 21Design Patternssolutions
  • 22Iteratorssolutions
  • 23Singletonsolutions
  • 24Template Methodsolutions
  • 25Surrogatesolutions
  • 26Factorysolutions
  • 27Function Objectssolutions
  • 28Data Transfer Objectssolutions
  • 29Changing the Interfacesolutions
  • 30Observersolutions
  • 31State Machinessolutions
  • 32Multiple Dispatchingsolutions
  • 33Visitorsolutions
  • 34Composite and Interpretersolutions
  • 35Flyweightsolutions
  • 36Mementosolutions
  • 37Pattern Refactoringsolutions
  • 38Simulationsolutions
  • 39Pattern Catalog
  • Part IV · Functional
  • 40Foundationssolutions
  • 41Toolkitssolutions
  • 42Error Handlingsolutions
  • 43Confidencesolutions
  • Part V · Effects
  • 44Effect Managementsolutions
  • 45Generatorssolutions
  • 46Statelesssolutions
  • 47Stateless in Practicesolutions
  • Appendices
  • AEffect Tracking
  • BAn Effect Checker
  • Back Matter
  • Index

Thinking in Python is free. If it has helped you and you'd like to support the work, you can do that on GitHub Sponsors or Ko-fi. No obligation, and no difference in what you get.

© 2026 Bruce Eckel. Licensed CC BY-NC-ND 4.0.
Freely readable online. Commercial publication requires a contract with the author.

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.