00 · Mecanismos de Python necesarios para el curso
Mecanismos de Python necesarios para el curso¶
Empieza por el despacho de operadores, los decoradores y las dataclasses para saber cómo una expresión llega a un método de la biblioteca.
Ya sabes leer funciones, clases, condiciones y anotaciones de tipos sencillas.
- explicar con tus palabras la definición matemática de «Mecanismos de Python necesarios para el curso»
- señalar cómo se representa esa definición en datos de Python
- predecir una ejecución pequeña a partir del código real
En Python, `a + b` y `a == b` solicitan `__add__` y `__eq__` a los objetos. Un decorador recibe y sustituye un objeto función al definirlo.
Una dataclass congelada guarda valores matemáticos inmutables. Internamente, un método con `@log` devuelve un resultado y un mensaje diferido; el envoltorio solo expone el resultado.
`+` → `__add__`; `==` → `__eq__`; `@log` → `inner`
Definición matemática
Definición matemática¶
En Python, a + b y a == b solicitan __add__ y __eq__ a los objetos. Un decorador recibe y sustituye un objeto función al definirlo.
Representación de datos
Representación de datos¶
Una dataclass congelada guarda valores matemáticos inmutables. Internamente, un método con @log devuelve un resultado y un mensaje diferido; el envoltorio solo expone el resultado.
Implementación en Python
Implementación en Python¶
inner llama al método original, separa (result, message), registra el mensaje si corresponde y devuelve result; @wraps conserva los metadatos.
La correspondencia exacta usada en el curso:
Traza de ejecución
Traza de ejecución¶
El cuerpo del método termina antes de que el envoltorio reciba el mensaje. Por eso las llamadas recursivas internas se registran primero.
Indica qué código atenderá `structural_str()` y `+`, y escribe las dos líneas que esperas.
Escribe primero tu predicción y después ejecuta.
Comprobación con pruebas
Comprobación con pruebas¶
Las pruebas protegen el resultado, la firma pública y la evaluación diferida del mensaje.
Alcance y límites
Alcance y límites¶
No repetimos la sintaxis elemental; explicamos la metaprogramación que resulta esencial para leer esta biblioteca.