Python Koans

Python Koans

Home
Notes
Archive
About
Koan 16: The Master's Lesson
Why we need "if __name__ == '__main__'"
Nov 5 • 
Vivis Dev

October 2025

Koan 15: The Invisible Ink
Understanding Unicode equivalence and the deceptive nature of glyphs
Oct 23 • 
Vivis Dev
Koan 14: The Missing Grain
When distributing python package_data goes wrong
Oct 4 • 
Vivis Dev

September 2025

Koan 13: The Empty Bowl
Understanding Python dataclasses and how fields determine equality and hashing.
Sep 24 • 
Vivis Dev
Koan 12: The Blacksmith's Hammer
Exploring the dangerous power of unquoted Python strings, and how they caused CVE-2024-9287
Sep 15 • 
Vivis Dev
Koan 11: The Flowing River (Part 2)
Understanding how Python's list comprehensions work under the hood
Sep 9 • 
Vivis Dev
Koan 10: The Flowing River (Part 1)
Understanding how Python's list comprehensions work under the hood
Sep 2 • 
Vivis Dev

August 2025

Koan 9: The Unfired Pot
Exploring chained operations and order of evaluation in python expressions
Aug 25 • 
Vivis Dev
Koan 8: The Shifting Seal
Understanding Python’s rules for hashing
Aug 19 • 
Vivis Dev
Koan 7: The Unburdened Village
Navigating Python's import system and namespace packages
Aug 12 • 
Vivis Dev
Koan 6: The Forgetful Calligrapher
Understanding Late Binding in Python Closures
Aug 5 • 
Vivis Dev

July 2025

Koan 5: The Silent Harp
Exploring how functions in Python are treated as first-class citizens, and the untapped potential they hold.
Jul 29 • 
Vivis Dev
© 2025 Python Koans
Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture