Python6 min read

Python Data Classes

Create classes for storing data efficiently.

David Miller
December 18, 2025
0.0k0

Simple data storage classes.

Basic Dataclass

```python from dataclasses import dataclass

@dataclass class Person: name: str age: int city: str

person = Person("Tom", 25, "Austin") print(person) # Person(name='Tom', age=25, city='Austin') ```

Default Values

```python from dataclasses import dataclass

@dataclass class Product: name: str price: float quantity: int = 0 in_stock: bool = True

product = Product("Laptop", 999.99) print(product) ```

Frozen Dataclass

```python from dataclasses import dataclass

@dataclass(frozen=True) class Point: x: int y: int

point = Point(10, 20) # point.x = 30 # Error! Frozen ```

Post Init Processing

```python from dataclasses import dataclass, field

@dataclass class Rectangle: width: float height: float area: float = field(init=False) def __post_init__(self): self.area = self.width * self.height

rect = Rectangle(10, 20) print(rect.area) # 200.0 ```

Compare and Sort

```python from dataclasses import dataclass

@dataclass(order=True) class Student: name: str grade: int

students = [ Student("Tom", 85), Student("Sarah", 92), Student("Mike", 78) ]

students.sort() for s in students: print(f"{s.name}: {s.grade}") ```

Remember

- Less boilerplate than regular classes - Auto-generates __init__, __repr__, etc. - Use frozen=True for immutability

#Python#Advanced#OOP