Differences between revisions 1 and 2
Revision 1 as of 2023-04-11 16:41:36
Size: 1521
Comment:
Revision 2 as of 2023-04-11 16:44:59
Size: 1545
Comment:
Deletions are marked like this. Additions are marked like this.
Line 16: Line 16:
Decorate a class to generate additional methods. Decorate a class to generate [[Python/DunderMethod|additional methods]].

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

Python/DataClasses (last edited 2023-06-15 20:49:37 by DominicRicottone)