typestar

Dataclasses a fondo en Python

Más allá de lo básico: orden, valores por defecto y datos congelados.

from dataclasses import dataclass, field


@dataclass(order=True)
class Tarea:
    prioridad: int
    titulo: str = "sin título"
    etiquetas: list[str] = field(default_factory=list)


@dataclass(frozen=True)
class Configuracion:
    host: str
    puerto: int = 8080


urgente = Tarea(1, "lánzalo", etiquetas=["lanzamiento"])
posterior = Tarea(5)
ordenado = sorted([posterior, urgente])

Cómo funciona

  1. @dataclass(order=True) deriva los métodos de comparación.
  2. field(default_factory=list) evita defaults mutables compartidos.
  3. frozen=True vuelve inmutables las instancias.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
367
Tokens
89
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 51 segundos.

Escribe este fragmento

Paso 2 de 4 en Tipado y dataclasses; paso 21 de 53 en Python pythónico.

← Anterior Siguiente →