typestar

overload en Python

Varias firmas para una función, para que el verificador sepa qué regresa.

from typing import overload


@overload
def analizar(texto: str) -> int:
    ...


@overload
def analizar(texto: str, predeterminado: str) -> int | str:
    ...


def analizar(texto, predeterminado=None):
    try:
        return int(texto)
    except ValueError:
        if predeterminado is None:
            raise
        return predeterminado


print(analizar("42"), analizar("x", "fallback"))
print(analizar.__name__)

Cómo funciona

  1. Cada stub @overload declara una forma de llamada.
  2. Después sigue la implementación real, que overload deja sin tipar.
  3. En tiempo de ejecución solo existe la implementación.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
24
Caracteres a escribir
369
Tokens
94
Ritmo de tres estrellas
110 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →