Python 3.12 introdujo algo de azúcar sintáctica para definir clases y funciones genéricas. Veamos cómo funciona:
def max[T](args: Iterable[T]) -> T:
...
class list[T]:
def __getitem__(self, index: int, /) -> T:
...
def append(self, element: T) -> None:
...
Se agradece esta simplificación que es útil en definiciones simples.
También es ahora permitido crear aliases con type
, aunque aún no he tenido la oportunidad de usarlo. El proyecto en el que trabajo en este momento usa python 3.10.
type Point = tuple[float, float]
type Point[T] = tuple[T, T]