Repaso
English
PythonAvanzadoPY-21

¿Qué consigue T aquí?

from typing import TypeVar
T = TypeVar("T")

def first(items: list[T]) -> T:
    return items[0]

Opciones

  1. Hace que la función sea más rápida al guardar en caché el primer elemento
  2. Une el tipo de retorno al tipo de los elementos: list[int] da int (Opción correcta)
  3. Permite que la función devuelva cualquier tipo, sea cual sea la entrada
  4. 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.

Términos clave

Practica esta pregunta en Repaso