PyCon UK 2023

Subclassing, Composition, Python, and You
2023-09-23 , Room D

Ever seen a code base where understanding a simple method meant jumping through tangled class hierarchies? Seen code go overboard with composition that the result didn’t resemble Python anymore? Let’s take a stroll together through patterns & trade-offs and discuss them afterwards!


Ever seen a code base where understanding a simple method meant jumping through tangled class hierarchies? We all have! And while "Favor composition over inheritance!" is almost as old as object-oriented programming, strictly avoiding all types of subclassing leads to verbose, un-Pythonic code. So, what to do?

The discussion on composition vs. inheritance is so frustrating because far-reaching design decisions like this can only be made with the ecosystem in mind – and because there's more than one type of subclassing!

Let's take a dogma-free stroll through the types of subclassing through a Pythonic lens and untangle some patterns and trade-offs together. By the end, you'll be more confident in deciding when subclassing will make your code more Pythonic and when composition will improve its clarity.


Is your proposal suitable for beginners? – yes

Hynek Schlawack is a lead infrastructure and software engineer from Berlin / Germany, a PSF fellow, a maintainer of too many open source projects, and a contributor to even more.

His main areas of interest are networks, security, and robust software.