¿Qué consigue T aquí?
from typing import TypeVar
T = TypeVar("T")
def first(items: list[T]) -> T:
return items[0]Opciones
- Hace que la función sea más rápida al guardar en caché el primer elemento
- Une el tipo de retorno al tipo de los elementos:
list[int]daint(Opción correcta) - Permite que la función devuelva cualquier tipo, sea cual sea la entrada
- Impone los tipos en tiempo de ejecución y lanza un error si no coinciden
Respuesta
Une el tipo de retorno al tipo de los elementos: list[int] devuelve int
Por qué
Un TypeVar es un marcador de posición para un tipo, como una variable pero para tipos.
list[T] -> T dice: sea cual sea el tipo dentro de la lista, la función devuelve ese mismo tipo. Un type checker sabe entonces que first([1, 2]) es un int y que first(["a"]) es un str.
Python no comprueba esto al ejecutarse; lo hacen herramientas como mypy o pyright.
Recuerda
TypeVar conecta el tipo de entrada con el tipo de salida.