El módulo inspect expone firmas, parámetros, anotaciones y otros datos de objetos Python. Es útil en frameworks pequeños, inyección de dependencias, documentación y validación de adaptadores.
Ejemplo práctico
from inspect import Parameter, signature
def send(message: str, *, urgent: bool = False) -> None:
pass
sig = signature(send)
for name, parameter in sig.parameters.items():
required = parameter.default is Parameter.empty
print(name, parameter.kind, required)
Trabajar con Signature
signature() y bind() modelan las reglas reales de llamada, incluidos parámetros posicionales, nominales y variables. Compara el valor predeterminado con Parameter.empty; None puede ser un valor legítimo.
La introspección tiene límites
Algunos objetos nativos o wrappers no conservan una firma completa. Usa functools.wraps en decoradores, evita atributos privados y mantén una alternativa explícita para objetos que no puedan inspeccionarse.
Sigue aprendiendo
Consulta también Decoradores Python: Guía Completa y Type Hints en Python: Guía Completa de Tipado. A documentación oficial de Python, consultada el 22 de julio de 2026, detalla la API y el comportamiento entre versiones.