A short story about what Pythonic might mean, an idea that involves a fair amount of interpretation and subjectivity.
In the age of AI, syntax by itself is the least important part of object-oriented programming to focus on. In this chapter, we cover classes, instance and class attributes, static and class methods, properties, encapsulation, inheritance, composition, and polymorphism against a problem from production code, a rate limiter for alerts. Along the way, we see what the SOLID principles warn about, what inheritance costs, and why composition is the more flexible approach.