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
- Un
TypeVarvincula el tipo del argumento con el del retorno. Generic[T]hace parametrizada una clase.- La sintaxis moderna escribe el parámetro entre corchetes después del nombre.
Palabras clave y builtins usados aquí
classdefelseifintlistprintreturnself
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.
Paso 1 de 4 en Tipado a fondo; paso 41 de 53 en Python pythónico.