typestar

TypeVar y Generic en Python

Un parámetro de tipo deja que una clase o función conserve el tipo de quien llama.

from typing import Generic, TypeVar

T = TypeVar("T")


def primero(elementos: list[T]) -> T | None:
    return elementos[0] if elementos else None


class Pila(Generic[T]):
    def __init__(self) -> None:
        self._items: list[T] = []

    def push(self, elemento: T) -> None:
        self._items.append(elemento)

    def pop(self) -> T:
        return self._items.pop()


numeros: Pila[int] = Pila()
numeros.push(3)
print(primero([1, 2, 3]), primero([]), numeros.pop())

Cómo funciona

  1. Un TypeVar vincula el tipo del argumento con el del retorno.
  2. Generic[T] hace parametrizada una clase.
  3. La sintaxis moderna escribe el parámetro entre corchetes después del nombre.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
23
Caracteres a escribir
436
Tokens
147
Ritmo de tres estrellas
110 tpm

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

Escribe este fragmento

Paso 1 de 4 en Tipado a fondo; paso 41 de 53 en Python pythónico.

← Anterior Siguiente →