A guide to writing 'friendly' Python classes by implementing three key behaviors: sensible constructor arguments via __init__, a readable string representation via __repr__, and value equality via __eq__. Shows how Python's dataclasses decorator provides all three automatically with less boilerplate, and how additional dunder methods like __iter__ can further improve usability. Also mentions the attrs library as a more feature-rich alternative. Advises using dataclasses as a baseline quality benchmark for any custom class.

5m read timeFrom pythonmorsels.com
Post cover image
Table of contents
Always make your classes friendlyAn example friendly classQuick friendly classes with dataclassesDataclasses seem confusing?Not all friendliness is the sameExtra friendly classesUse dataclasses as a measuring stickA Python tip every week

Sort: