Objectifs
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
Compétences visées
- Maîtriser la programmation orientée objet en Python, y compris les types, les classes et la gestion des exceptions pour aborder des concepts avancés comme la méta-programmation.
- Développer et structurer des packages Python en respectant les meilleures pratiques avec la gestion de l'installation et de la distribution.
- Garantir la qualité du code Python en respectant les normes de codage, en écrivant des tests unitaires et en utilisant des outils d'analyse pour améliorer la couverture de test et l'optimisation des performances.
- Optimiser les performances des scripts Python, en utilisant des techniques de réduction de complexité, de multithreading et d'analyse de la mémoire.
- Créer des extensions Python en les interfaçant avec des langages comme C ou C++.
- Développer et structurer des packages Python en respectant les meilleures pratiques avec la gestion de l'installation et de la distribution.
- Garantir la qualité du code Python en respectant les normes de codage, en écrivant des tests unitaires et en utilisant des outils d'analyse pour améliorer la couverture de test et l'optimisation des performances.
- Optimiser les performances des scripts Python, en utilisant des techniques de réduction de complexité, de multithreading et d'analyse de la mémoire.
- Créer des extensions Python en les interfaçant avec des langages comme C ou C++.
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 ou d'avoir atteint par la pratique un niveau équivalent
Méthode pédagogique
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.
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
Modalités d'évaluation
Un formulaire d'auto-évaluation proposé en amont de la formation nous permettra d'évaluer votre niveau et de recueillir vos attentes. Ce même formulaire soumis en aval de la formation fournira une appréciation de votre progression.
Des exercices pratiques seront proposés à la fin de chaque séquence pédagogique pour l'évaluation des acquis.
En fin de formation, vous serez amené(e) à renseigner un questionnaire d'évaluation à chaud.
Une attestation de formation vous sera adressée à l'issue de la session.
Trois mois après votre formation, vous recevrez par email un formulaire d'évaluation à froid sur l'utilisation des acquis de la formation.
Des exercices pratiques seront proposés à la fin de chaque séquence pédagogique pour l'évaluation des acquis.
En fin de formation, vous serez amené(e) à renseigner un questionnaire d'évaluation à chaud.
Une attestation de formation vous sera adressée à l'issue de la session.
Trois mois après votre formation, vous recevrez par email un formulaire d'évaluation à froid sur l'utilisation des acquis de la formation.
Solutions de financement
Cette formation peut être financée :
- dans le cadre du plan de développement des compétences de votre Entreprise
- par l’OPCO (opérateur de compétences) de votre Entreprise ou le FAF (Fonds d’Assurance Formation) pour les professionnels libéraux
- par France Travail dans le cadre du dispositif de l'Aide Individuelle à la Formation (soumis à accord de votre Agence)
- à titre personnel
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