Python | Perfectionnement Mixte : présentiel / à distance
Dernière mise à jour : 25/11/2025
Pré-inscription
Présentation
En quatre jours, cette session “Python perfectionnement” consolide les bases et ouvre l’accès aux techniques expertes : fonctions avancées, conception objet poussée, optimisation et exécution parallèle, puis industrialisation (packaging, CI/CD).
Chaque journée se conclut par un atelier modulable afin de mettre immédiatement en pratique les notions étudiées.
Objectifs
A l'issue de la formation, le stagiaire sera capable d'utiliser Python pour développer des applications plus performantes et optimisées.
- Approfondir la connaissance des concepts avancés de Python
- Utiliser les techniques avancées du langage Python
- Optimiser les performances de vos programmes à l'aide du monitoring et du parallélisme
- Packager et déployer ses artefacts Python
- Exploiter des librairies contribuant au succès du langage (data science & machine learning, cybersécurité, développement web, logiciels et outils...)
Public visé
Prérequis
Programme
Jour 1 – Maîtriser les fonctionnalités avancées du langage
Objectifs du jour
- Produire et consommer des données « au fil de l'eau » sans surcharge mémoire
- Ajouter un journal, un cache ou un chronomètre sans toucher au cœur du code
- Sécuriser l'ouverture / fermeture des ressources externes
- Remplacer de longues cascades de conditions par des blocs lisibles
Contenu
- Fonctions productrices (générateurs) :
- Livrer les résultats un à un plutôt qu'en bloc
- Chaîner plusieurs producteurs pour un pipeline efficace
- Fonctions « habillage » :
- Envelopper une fonction pour tracer, mettre en cache ou minuter
- Passer des paramètres d'habillage pour différents contextes
- Gestionnaires de contexte :
- Bloc « avec… » qui ouvre puis referme toujours fichier, connexion ou verrou
- Correspondance de motifs
- Lire et maintenir plus facilement les grandes branches conditionnelles
Atelier pratique
- Créer une mini-bibliothèque « journal + chronomètre » et l'appliquer à un script.
Jour 2 – Conception objet avancée & qualité
Objectifs
- Imposer un contrat d'interface commun à plusieurs développements
- Réutiliser un comportement ciblé sans multiplier les niveaux d'héritage
- Générer automatiquement des classes ou registres de plugins
- Couvrir le code par des tests complets et lisibles
Contenu
- Classes abstraites :
- Imposer un contrat d'interface avec abc.ABC
- Obliger les sous-classes à implémenter les méthodes clés
- Mixins et réutilisation ciblée :
- Injecter un horodatage, un identifiant unique… sans hiérarchie profonde
- Patterns de conception simple :
- Singleton via décorateur ou variable de module
- Factory via fonctions ou classes
- Composition vs Héritage : encapsuler une instance ou hériter ?
- Plugins : construire un registre de plugins chargé à l'exécution
- Tests avancés :
- Doubles d'objets
- Mesure de couverture
- Tests génératifs (property-based)
- Visualisation UML
Atelier pratique
- Refactoriser une hiérarchie existante, ajouter le contrat, puis écrire les tests couvrant 90 % du code
Jour 3 - Performance, concurrence et optimisation
Objectifs du jour
- Localiser les goulots d'étranglement d'un programme Python
- Accélérer un calcul ou un traitement d'entrées/sorties lourdes
- Choisir entre parallélisme (multi-cœur) et exécution asynchrone
- Quantifier le gain obtenu après optimisation
Contenu
- Profilage visuel :
- Graphiques CPU/mémoire pour hiérarchiser les priorités d'optimisation
- Optimisations de structure :
- Sélectionner la collection la plus rapide
- Éviter les conversions répétées
- Utiliser pathlib pour la lisibilité et la portabilité
- Exécution parallèle :
- Répartir les tâches sur plusieurs cœurs ou processus selon la charge
- Exécution non bloquante :
- Boucle d'évènements qui continue pendant les attentes réseau ou disque
- Réutilisation des connexions avec requests.session
Atelier pratique
- Mesurer puis accélérer l'analyse d'un gros fichier ; comparer le gain entre multi-processus et approche asynchrone
Jour 4 – Packaging, documentation & déploiement continu
Objectifs du jour
- Distribuer un projet Python sous forme de paquet installable partout
- Produire une documentation HTML à jour depuis le code
- Automatiser contrôle de style, tests et publication via CI/CD
- Conteneuriser une appli Python dans une image légère
Contenu
- Fichier de configuration unique :
- Centraliser nom, version, auteurs, dépendances (exécution vs développement)
- Générer un wheel installable sur tout poste
- Documentation automatisée :
- Extraire les commentaires pour créer un site HTML consultable
- Maintenir la doc à jour grâce aux vérifications CI
- Typage statique léger :
- Annotations pour détecter les incohérences avant exécution
- IA & sécurité logiciel
- Génération automatique d'un squelette de test unitaire ou de script CI avec un assistant LLM
- Risques et bonnes pratiques (RGPD)
- Chaîne CI/CD de base :
- À chaque dépôt : contrôle de style → tests → construction → publication
- Conteneurisation avec une image Python « slim » prête à déployer
- Usage pytest, ruff, tox/nox
Atelier pratique
- Transformer le module développé en paquet
- Générer la doc puis configurer un pipeline CI minimal qui lance linter et les tests automatiquement.
Modalités pédagogiques
Docaposte Institute propose plusieurs dispositifs pédagogiques adaptés aux apprenants :
- Formation en présentiel
- En groupe (inter-entreprises ou intra-entreprise)
- En individuel (monitorat)
- En journée ou en cours du soir (sur demande spécifique)
- Formation en distanciel
- Distanciel synchrone
- Distanciel asynchrone
Moyens et supports pédagogiques
- Apports des connaissances communes.
- Mises en situation sur le thème de la formation et des cas concrets.
- Méthodologie d'apprentissage attractive, interactive et participative.
- Équilibre théorie / pratique : 60 % / 40 %.
- Supports de cours fournis au format papier et/ou numérique.
- Ressources documentaires en ligne et références mises à disposition par le formateur.
- Pour les formations en présentiel dans les locaux mis à disposition, les apprenants sont accueillis dans une salle de cours équipée d'un réseau Wi-Fi, d'un tableau blanc ou paperboard. Un ordinateur avec les logiciels appropriés est mis à disposition (le cas échéant).
Modalités d'évaluation et de suivi
En amont de la formation :
- Recueil des besoins des apprenants afin de disposer des informations essentielles au bon déroulé de la formation (profil, niveau, attentes particulières...).
- Auto-positionnement des apprenants afin de mesurer le niveau de départ.
Tout au long de la formation :
- Évaluation continue des acquis avec des questions orales, des exercices, des QCM, des cas pratiques ou mises en situation...
A la fin de la formation :
- Auto-positionnement des apprenants afin de mesurer l'acquisition des compétences.
- Evaluation par le formateur des compétences acquises par les apprenants.
- Questionnaire de satisfaction à chaud afin de recueillir la satisfaction des apprenants à l'issue de la formation.
- Questionnaire de satisfaction à froid afin d'évaluer les apports ancrés de la formation et leurs mises en application au quotidien.
Informations sur l'admission
Modalités d'admission
- Admission sans disposition particulière