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.
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.