El protocolo de iteración: `__iter__` y `__next__`
Cómo funciona el protocolo de iteración de Python, la diferencia entre iterable e iterador, y cómo implementar ambos correctamente.
Cómo funciona el protocolo de iteración de Python, la diferencia entre iterable e iterador, y cómo implementar ambos correctamente.
Cómo implementar operadores de igualdad, orden y aritmética en Python, incluyendo versiones reflejadas e in-place, y la regla crítica de __hash__.
Qué hace realmente cada uno, cómo interactúan con `print()` y el REPL, y por qué `__repr__` es el mínimo que toda clase no trivial debe implementar.
Los métodos __x__ son el contrato entre tus objetos y el intérprete; entenderlos te permite escribir clases que participan naturalmente en la sintaxis del lenguaje.
Cada valor en Python es una instancia de alguna clase, incluyendo funciones, clases y None. Entender las tres propiedades fundamentales de un objeto explica reflexión, metaclases y decisiones de diseño del lenguaje.
Cómo usar `NamedTemporaryFile`, `TemporaryFile` y `TemporaryDirectory` para evitar race conditions y limpiar recursos automáticamente.
Cómo usar pathlib.Path para construir, leer, escribir y explorar rutas del filesystem de forma legible y multiplataforma.
Cómo usar el iterador perezoso de file objects, chunks binarios y csv.reader para procesar archivos de gigabytes sin agotar la memoria.
Por qué `with open(…) as f:` garantiza que el archivo se cierra siempre, cómo funciona el protocolo `__enter__`/`__exit__`, y cómo manejar múltiples archivos en un solo bloque.
Modos r/w/a/x/b/+, por qué especificar encoding siempre, manejo de saltos de línea y métodos del file object.