Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Este curso está dirigido a programadores que dominan los fundamentos de Python y quieren evolucionar hacia patrones más expresivos y robustos del lenguaje. El participante aprenderá a anotar su código con type hints y verificarlo con mypy, a controlar el flujo de datos con generadores e iteradores personalizados, a serializar información entre formatos con criterio de seguridad, y a gestionar recursos en memoria con context managers propios. Asimismo, profundizará en programación orientada a objetos mediante jerarquías de clases, clases abstractas y dunder methods, y dominará las funciones de orden superior, decoradores y closures que caracterizan el estilo Python intermedio. Al finalizar, será capaz de escribir módulos bien tipados, modulares y con patrones de diseño consolidados que sirven de base para proyectos profesionales.
Al finalizar el curso, el participante será capaz de:
typing (Optional, Union, List, Dict, Tuple, Callable) y verificar las anotaciones con mypy sin erroresyield y yield from, e iteradores personalizados con __iter__ y __next__, justificando cuándo un generador es preferible a una lista para conjuntos de datos grandesio.StringIO y io.BytesIO como alternativa a archivos en disco, e implementar context managers propios con __enter__/__exit__ o @contextmanagersuper() respetando el MRO, y justificar cuándo preferir composición frente a herenciaabc.ABC y @abstractmethod, implementar polimorfismo con isinstance, y enriquecer clases con @property y dunder methods (__eq__, __hash__, __repr__)functools.wraps, y adaptar funciones existentes con closures (nonlocal) y functools.partial para crear variantes especializadas sin modificar el originaltyping y mypy Tipos compuestos: Optional, Union, List, Dict, Tuple, Callable; diferencia entre tipos simples y genéricos; anotación de funciones, métodos y atributos de clase; verificación estática con mypy --strict; reglas de # type: ignore y cuándo evitarloyield y yield from; protocolo iterador: __iter__ y __next__; StopIteration; comparación de consumo de memoria entre generador y lista; uso con itertools.islice y expresiones generadorasjson, csv y pickle: serialización y deserialización; DictWriter y DictReader; criterios de elección por interoperabilidad, legibilidad y seguridad; riesgos de pickle con fuentes no confiables; buffers en memoria con io.StringIO e io.BytesIO; context managers propios con __enter__/__exit__ y @contextmanagersuper() y el algoritmo MRO (C3); herencia frente a composición: criterios de decisión; refactorización de una jerarquía de herencia a composición; __mro__ para inspeccionar el orden de resoluciónabc.ABC y @abstractmethod; polimorfismo mediante sobrescritura y verificación con isinstance; @property con getter y setter con validación; dunder methods: __repr__, __eq__ y __hash__; contrato entre __eq__ y __hash__; @classmethod y @staticmethodnonlocal; decoradores sin parámetros y de fábrica (con parámetros); functools.wraps para preservar metadatos; functools.partial para especializar funciones; functools.lru_cache para memoización; patrón @decorador(args)(func)pip install mypy→ PYT01 — Fundamentos de Python (Iniciación, 8h)
try/exceptreturn y docstrings__init__, atributos de instancia y métodos, e instanciarla desde un scriptdatetime, random y la IO de archivos con with open