Objectifs
Découvrir les concepts avancés du langage Python
Interfacer Python avec d'autres langages
Python et le génie logiciel
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.
Pédagogie active mêlant exposés, exercices et applications pratiques dans le logiciel Python.
Accessibilité
Vous souhaitez suivre notre formation Python avancé et êtes en situation de handicap ? Merci de nous contacter afin que nous puissions envisager les adaptations nécessaires et vous garantir de bonnes conditions d'apprentissage
Programme
- Rappels de Programmation Orientée Objet
- Syntaxe avancée
- Classes avancées
- Introduction à l'écriture de packages
- Qualité logicielle
- Solutions d'optimisation
- Interfaçage avec C / C++
- 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