typestar

Clases base abstractas en Python

Las ABC declaran la interfaz y se niegan a instanciarse hasta que se cumple.

from abc import ABC, abstractmethod


class Revision(ABC):
    @abstractmethod
    def passes(self, texto: str) -> bool:
        ...

    def describe(self) -> str:
        return f"{type(self).__name__.lower()} (revisión)"


class LargoMinimo(Revision):
    def __init__(self, piso):
        self.floor = piso

    def passes(self, texto):
        return len(texto) >= self.floor


print(LargoMinimo(3).passes("ada"), LargoMinimo(3).describe())
try:
    Revision()
except TypeError as exc:
    print(str(exc)[:48])

Cómo funciona

  1. abstractmethod marca lo que una subclase debe proveer.
  2. Instanciar una subclase incompleta lanza TypeError.
  3. Un método concreto en la ABC es comportamiento compartido.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
25
Caracteres a escribir
455
Tokens
136
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 74 segundos.

Escribe este fragmento

Paso 1 de 3 en Maquinaria de clases; paso 35 de 53 en Python pythónico.

← Anterior Siguiente →