Vous êtes ici : Accueil > Informatique > Formation > Développement (5) > Python avancé

Formation Python avancé


Objectifs

Découvrir les concepts avancés du langage Python - Interfacer Python avec d'autres langages - Python et le génie logiciel.

Public

Tout développeur ou scientifique ayant une expérience du langage Python

Pré-requis

Pour suivre ce stage dans de bonnes conditions, il est recommandé d'avoir suivi en amont la formation Python – Bases et introduction aux librairies scientifiques

Méthode

Chaque chapitre s'achève par des travaux pratiques qui mettent en oeuvre les éléments présentés. Les TP utilisent les outils Pycharm ou Spyder selon les souhaits
Pédagogie active mêlant exposés, exercices et applications pratiques dans le logiciel Python.

Programme

- Rappels de Programmation Orientée Objet
  • Types de base
  • Création de classes
    • Héritage, Polymorphisme...
  • Traitement des Exceptions
    • raise, try, except, finally
  • Le "Data-Model" et les fonctions "magiques"
  • Importations "avancées" - utilisation de . et ..

- Syntaxe avancée
  • Listes en "compréhension"
  • Itérateurs et générateurs
  • Modules itertools, collections
  • Lambda fonctions
  • Décorateurs
  • Instructions with et Contextlib
  • Instruction yield
  • Programmation asynchrone
  • Coroutines

- Classes avancées
  • Sous-classer les types de base
  • Résolution des héritages multiples
  • Cas de la méthode "super"
  • Descripteurs __get__ et __set__
  • Propriétés (properties)
  • dict__ et __slots__
  • Classes abstraites
  • Méta-programmation

- Introduction à l'écriture de packages
  • "Meilleures pratiques"
  • setup.py et scripts de contrôle
  • L'utilitaire pip
  • Installer un package
  • Désinstaller un package
  • Enregistrer et uploader un package

- Qualité logicielle
  • Annotations
  • Respect de la PEP 8 - normes de codage
  • Tests unitaires (doctest et unittest)
  • Taux de couverture - coverage

- Solutions d'optimisation
  • Réduction de la complexité
  • Bytecode et le module "dis"
  • Multithreading
  • Multiprocessing
  • Gestion des caches
  • Profiling
  • Analyse de l'occupation mémoire

- Interfaçage avec C / C++
  • Objectif et principe
  • SWIG
  • Cython
  • Le module ctypes