Site Tools


import-dataclasses

import dataclasses

import dataclasses is a Python import that auto-generates methods for classes that mainly store data. Use @dataclass to reduce boilerplate for simple classes.

Example

# Python
# description: define data classes with auto-generated methods
 
from dataclasses import dataclass, field
from typing import List
 
@dataclass
class Person:
    name: str
    age: int
    email: str = "[email protected]"  # default value
 
# Create instance
p = Person("Alice", 30)
print(p)  # Person(name='Alice', age=30, email='[email protected]')
 
# Auto-generated __eq__
p2 = Person("Alice", 30)
print(p == p2)  # True
 
# Mutable default (use field with default_factory)
@dataclass
class Team:
    name: str
    members: List[str] = field(default_factory=list)
 
team = Team("Devs")
team.members.append("Alice")
print(team)

Common decorators and options

  • @dataclass: auto-generate __init__, __repr__, __eq__, etc.
  • @dataclass(frozen=True): immutable dataclass
  • field(default_factory=...): factory for mutable defaults
  • field(init=False): exclude field from __init__
  • field(repr=False): exclude field from __repr__
import-dataclasses.md · Last modified: by 127.0.0.1