Python DataClasses

dataclasses is a module that supports the creation of simple classes.


Usage

@DataClass

Decorate a class to generate additional methods.

import dataclass

@dataclass.dataclass
class User:
    name: str       # 'name' has no defualt value
    id: int = 1000  # 'id' defaults to 1000

A TypeError is raised if a field without a default value follows a field with a default value.


AsDict


AsTuple


Field

Create more complicated default behaviors for dataclass fields.

To create a field that defaults to an empty list, try:

import dataclass

@dataclass.dataclass
class User:
    groups: list[int] = dataclass.field(default_factory=list)

u = User()
u.groups += [1, 2, 3]


Fields


Is_DataClass


KW_Only

A type annotation used for dataclasses.

import dataclass

@dataclass.dataclass
class Point:
    x: float
    _: dataclass.KW_ONLY
    y: float
    z: float

p = Point(0, y=1.5, z=2.0)


Make_DataClass


Missing

dataclass.MISSING is a sentinel value used internally.


Replace


See also

Python dataclasses module documentation


CategoryRicottone