Basics
from dataclasses import dataclass, field | Import |
@dataclass
class Point:
x: float
y: float | Basic dataclass |
p = Point(1.0, 2.0) | Create instance |
p.x, repr(p) | Access field, repr auto-generated |
Options
@dataclass(frozen=True) | Immutable (hashable) |
@dataclass(order=True) | Enable comparison operators |
@dataclass(slots=True) | Use __slots__ (Python 3.10+) |
field(default=0) | Field with default |
field(default_factory=list) | Mutable default |
field(repr=False, compare=False) | Exclude from repr/compare |
Methods
from dataclasses import asdict, astuple | Convert to dict/tuple |
from dataclasses import replace
replace(p, x=10) | Create modified copy |
from dataclasses import fields
fields(p) | List all fields |