Objectifs

Résultats attendus

Résultats attendus

Attestation de formation

Objectifs de la formation

Objectifs de la formation

Maîtriser les concepts avancés de Python, notamment la programmation orientée objet, l'écriture de packages, la qualité logicielle et l'optimisation des performances

Domaines

Domaine(s)
Langage Python

Contenu

Contenu

- 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