TypedDict y NewType en Python
Tipar la forma de un dict, y darle a un primitivo un nombre distinto.
from typing import NewType, NotRequired, TypedDict
IdPaso = NewType("IdPaso", int)
class FilaPaso(TypedDict):
tour: str
idx: int
stars: NotRequired[int]
def rotulo(fila: FilaPaso) -> str:
return f"{fila['tour']}#{fila['idx']} ({fila.get('stars', 0)} estrellas)"
fila: FilaPaso = {"tour": "basics", "idx": 3, "stars": 2}
print(rotulo(fila))
print(rotulo({"tour": "traits", "idx": 0}))
print(IdPaso(7) + 1)
Cómo funciona
TypedDictdescribe claves requeridas y opcionales.total=Falsevuelve opcional cada clave.NewTypees un tipo distinto al verificar y un int al ejecutar.
Palabras clave y builtins usados aquí
classdefintprintreturnstr
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 411
- Tokens
- 144
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 79 segundos.
Paso 3 de 4 en Tipado a fondo; paso 43 de 53 en Python pythónico.