logo

Dataclasses for Less Boilerplate

Writing __init__ for simple data containers gets repetitive. Dataclasses generate it for you.

from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int
    city: str = "Unknown"

This automatically creates __init__, __repr__, and __eq__. Use it like any class:

alice = Person("Alice", 30, "NYC")
print(alice)  # Person(name='Alice', age=30, city='NYC')

You get proper initialization, nice printing, and equality comparison - all without writing boilerplate.

Dataclasses are perfect for classes that mainly hold data.

I cover dataclasses in my Python OOP course.