Développement C/C++ Perl et Python

Python, perfectionnement

Objectifs de la formation

  • Implémenter de manière rigoureuse des Design Patterns reconnus
  • Utiliser les techniques avancées du langage Python : Context Manager, métaclasses, closures, fonctions avancées
  • Optimiser les performances de vos programmes à l'aide du monitoring et du parallélisme
  • Packager et déployer ses artefacts Python
  • Exploiter des librairies contribuant au succès du langage : calcul scientifique, Intelligence Artificielle, XML, réseau


Programme de la formation

Rappels importants sur le langage

  • Affectation par référence et types de données modifiables, non modifiables (mutable).
  • Passage d'arguments, valeurs par défaut et variables locales.
  • Variables de classe et d'instances.
  • Les slices et structures de données avancées.
  • L'introspection.
  • Eléments avancés des structures de contrôle : la clause else des instructions for, while, try/except.

Travaux pratiques

Optimisation : intersection de listes et calcul de complexité d'algorithmes.

Fonctions avancées

  • Utilisation avancée de décorateurs (de la génération à la consommation, pipeline de consommateurs).
  • Les décorateurs et Design Patterns.
  • Fermeture/closure.

Travaux pratiques

Chaînage de consommateurs de données. Abonnement à des événements via les décorateurs.

Programmation Orientée Objet avancée

  • Les propriétés (property).
  • Les itérateurs.
  • L'héritage multiple et ses travers.
  • Les Context Managers.
  • Les classes et méthodes abstraites (ABC).
  • Les métaclasses.

Travaux pratiques

Implémenter une métaclasse pour créer des classes de type singleton.

Déploiement et qualité

  • Installer des librairies tierces (pip, easy_install).
  • Le Python Package Index (PyPI).
  • Packager ses librairies (distutils, setuptools).
  • Déployer un environnement autonome (virtualenv et buildout).

Travaux pratiques

Packager une librairie et la déposer sur PypI.

Le parallélisme : optimiser les performances de vos programmes

  • Profilez vos programmes avec Timeit et cProfile.
  • Parallélisation : évitez le multithreading et foncez avec le multiprocessing.
  • Calcul distribué avec la librairie Celery.

Travaux pratiques

Répartition et consolidation (Map Reduce) de calculs avec Celery.

Les librairies contribuant au succès du langage

  • Calcul scientifique et statistiques avec Numpy, Scipy, Matplotlib et Pandas.
  • Intelligence Artificielle et algorithmes d'apprentissage avec Scikit-Learn.
  • Recherche d'informations dans des fichiers XML avec ElementTree.
  • Réseau : relay tcp avec Twisted et supervision SNMP avec PySNMP.

Travaux pratiques

Extraction d'informations dans des fichiers de log XML, filtres et statistiques sur les données collectées puis représentation à l'aide de graphiques des tendances des informations.

Please login to get access to the quiz
Développer avec le langage C (Prev Lesson)
(Next Lesson) Python, programmation Objet
Back to Développement C/C++ Perl et Python
Public

Ingénieurs et développeurs.

Pré-requis

Bonnes connaissances en développement Python, expérience requise.