Python Data Classes
Create classes for storing data efficiently.
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