1
Recordatorios importantes sobre el lenguaje
- Asignación por referencia y tipos de datos modificables y no modificables (mutables).
- Pasar argumentos, valores por defecto y variables locales.
- Variables de clase y de instancia.
- Rebanadas y estructuras de datos avanzadas.
- Introspección.
- Elementos avanzados de las estructuras de control: la cláusula else en las sentencias for, while y try/except.
Trabajo práctico
Optimización: intersección de listas y cálculo de la complejidad del algoritmo.
2
Funciones avanzadas
- Uso avanzado de decoradores (de generación a consumo, pipeline de consumo).
- Decoradores y patrones de diseño.
- Cierre.
Trabajo práctico
Encadenamiento de consumidores de datos. Suscripción a eventos mediante decoradores.
3
Programación avanzada orientada a objetos
- Propiedades.
- Iteradores.
- El patrimonio múltiple y sus deficiencias.
- Gestores de contexto.
- Clases y métodos abstractos (ABC).
- Metaclases.
Trabajo práctico
Implementa una metaclase para crear clases singleton.
4
Despliegue y calidad
- Instalación de bibliotecas de terceros (pip, easy_install).
- El índice de paquetes de Python (PyPI).
- Empaquetando tus librerías (distutils, setuptools).
- Despliegue de un entorno autónomo (virtualenv y buildout).
Trabajo práctico
Empaqueta una biblioteca y súbela a PypI.
5
Paralelismo: optimice el rendimiento de sus programas
- Perfile sus programas con Timeit y cProfile.
- Paralelización: evite el multithreading y apueste por el multiprocesamiento.
- Cálculo distribuido con la biblioteca Celery.
Trabajo práctico
Distribución y consolidación (Map Reduce) de cálculos con Celery.
6
Bibliotecas que contribuyen al éxito de la lengua
- Computación científica y estadística con Numpy, Scipy, Matplotlib y Pandas.
- Inteligencia artificial y algoritmos de aprendizaje con Scikit-Learn.
- Búsqueda de información en archivos XML con ElementTree.
- Red: tcp relay con Twisted y supervisión SNMP con PySNMP.
Trabajo práctico
Extracción de información de archivos de registro XML, filtros y estadísticas de los datos recogidos y, a continuación, representación gráfica de las tendencias de la información.