Développer avec Python avancé Mixte : présentiel / à distance
Dernière mise à jour : 11/02/2025
Pré-inscription
Présentation
Objectifs
- Utiliser des design patterns et les meilleures pratiques dans les applications Python
- Réaliser des tests unitaires, débogages et installations de programmes et modules Python
- Profiler l'exécution d'un programme et améliorer les performances
- Appliquer des fonctionnalités de programmation Python avancées pour des programmes efficaces, fiables et maintenables
Public visé
Prérequis
Programme

Rappels importants sur le langage
- Syntaxe de base et nouveautés récentes
- Rappels sur les fonctions
- Conditions ternaires, listes en compréhensions, one-liners
Fonctions avancées
- Accès aux attributs des fonctions
- Les générateurs
- Les décorateurs
- Les closures
Travaux pratiques : création de décorateurs de contrôle, mise en place d'itérables selon plusieurs techniques
Programmation orientée objet avancée
- Rappels sur la programmation orientée objet
- Ajout de propriétés à une classe
- Introspection
- Redéfinition des méthodes spéciales : itérateurs, context managers, ...
- Définition des classes de base abstraites
- Création de métaclasses
Travaux pratiques : exploration des différentes fonctionnalités avancées
Vérification du code et tests unitaires
- Tester les meilleures pratiques
- Développement et exécution de tests unitaires Python
- Simplifier les tests automatisés avec nose
- Vérification du comportement du code
- Utiliser des mocks
- Détection des erreurs et techniques de debugging
- Vérifier votre code pour des bugs potentiels avec Pylint
- Extraction des informations d'erreur depuis les exceptions
- Tracer l'exécution d'un programme avec l'IDE PyCharm
Travaux pratiques : test des différents programmes créés précédemment
Interfaçage avec les webservices et les clients de REST
- Présentation de Flask, Django, etc.
- Mise en place d'un service REST
- Générer des réponses JSON pour soutenir les clients Ajax
- Clients Python REST
- Envoi de demandes REST à partir d'un client Python
- Consommation de données de réponse JSON et XML
Travaux pratiques : consommation d'API et webscrapping
Mesure et amélioration des performances de l'application
- Chronométrage de l'exécution des fonctions
- Profilage de l'exécution d'un programme
- Manipuler un profil d'exécution de manière interactive
- Utilisation des fonctionnalités du langage Python pour les performances
- Appliquer efficacement les structures de données, notamment les listes, les dictionnaires et les tuples
- Remplacement de l'interpréteur Python standard par PyPy
Installation et distribution des modules
- Gestion des dépendances d'un projet avec pip
- Le fichier requirements.txt
- La gestion des versions
- Installation de modules du dépôt PyPi à l'aide de pip
- Portage du code entre les versions Python
- Création de paquets de modules et d'applications Python
- Mise en place d'environnements virtuels (virtualenv, conda, pipenv, poetry, ...)
- Construire un paquet de distribution avec setuptools
- Télécharger vos modules Python sur un dépôt local
Travaux pratiques : mise en place d'un projet créé avec environnement virtuel, packaging et déploiement sur PyPI
Exécution simultanée
- Création et gestion de plusieurs fils de contrôle avec la classe Thread
- Synchronisation des fils à l'aide de verrous
- Lancement des commandes du système d'exploitation en tant que sous-processus
- Synchronisation des processus avec les files d'attente
- Paralléliser l'exécution en utilisant des pools de processus et des exécuteurs
Travaux pratiques : exécution de traitements en parallèle et mesure des performances
Aller plus loin
- Présentation de Cython, CPyton
- Le typage avec MyPy
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.
- · Equilibre 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