Date de mise à jour : 21/03/2025 | Identifiant OffreInfo :
14_AF_0000049708
Organisme responsable :
Data Value
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++.
- 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
Attestation de formation
Non certifiante
Sans niveau spécifique