typestar

Protocolos en Python

Tipado estructural: duck typing que el verificador de tipos entiende.

from typing import Protocol


class Dibujable(Protocol):
    def draw(self) -> str: ...


class Circulo:
    def draw(self) -> str:
        return "( )"


class Cuadrado:
    def draw(self) -> str:
        return "[ ]"


def renderizar(figuras: list[Dibujable]) -> str:
    return " ".join(s.draw() for s in figuras)

Cómo funciona

  1. Un Protocol lista los métodos que un tipo debe tener.
  2. Circulo y Cuadrado lo cumplen sin heredar.
  3. renderizar acepta cualquier cosa con la forma de Dibujable.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
284
Tokens
84
Ritmo de tres estrellas
105 tpm

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

Escribe este fragmento

Paso 5 de 5 en Protocolos y gestores de contexto; paso 19 de 53 en Python pythónico.

← Anterior Siguiente →