Développement logiciel

Python, programmation objet

Passez de scripts Python à une petite application structurée en objets. Vous modélisez le domaine, choisissez entre composition et héritage, protégez les échanges et testez une interface simple sans coupler toute la logique à l’affichage.

3 jours · 21 hIntermédiaireHybride

Pour qui ?

Développeurs et professionnels disposant de premières bases Python, souhaitant structurer une application en objets.

Prérequis

Savoir utiliser variables, conditions, boucles et fonctions Python. Lire et modifier un script simple ; la conception objet est introduite pendant le parcours.

Des compétences à mettre en pratique

Objectifs pédagogiques

  • Comprendre les bases du langage Python et son écosystème
  • Acquérir les principes de la programmation objet
  • Comprendre et utiliser les fonctions et modules
  • Concevoir des interfaces graphiques
  • Utiliser les outils de test et d'évaluation de la qualité d'un programme Python

Votre progression, jour après jour

Programme détaillé

6 séquences · 21 heures indicatives · ateliers et évaluation

Télécharger le programme (PDF)

Le cas fil rouge

Structurer un gestionnaire d'inventaire Python avec modèle objet, interface simple et tests automatisés.

Préparer votre formation et découvrir la méthode

Préparer la formation

Premières fonctions et collections Python ; Python, éditeur, pytest et Tkinter disponibles dans le poste de formation.

Apports illustrés, exercices progressifs, ateliers sur un cas fil rouge et retour argumenté sur les productions. Les ateliers et l'évaluation font partie des heures indiquées.

Jour 01Consolider fonctions et modules7 h · 2 séquences avec mise en pratique

Séquence 1 · 3 h 30

Consolider fonctions et modules

  • Organiser fichiers, imports et environnement virtuel.
  • Préciser arguments, valeurs de retour et exceptions.
  • Distinguer état local, état partagé et effets de bord.
  • Clarifier portée, mutabilité, arguments par défaut et annotations ; structurer un paquet sans imports circulaires.
Notions et méthodes en détail
  • Distinguer argument mutable, copie et référence ; éviter une valeur par défaut partagée.
  • Organiser modules et imports pour réduire dépendances circulaires et effets au chargement.
  • Employer annotations de types, exceptions ciblées et documentation du contrat des fonctions.

Atelier prévuTransformer un script monolithique d'inventaire en trois modules sans modifier ses résultats.

Livrable attenduPaquet Python organisé et fonctions aux contrats explicites.

Vérification en atelierL’import d’un module ne lance pas l’application et les erreurs attendues sont testées.

Pour aller plus loin

Remplacer des variables globales par des dépendances explicites pour rendre le traitement testable.

Séquence 2 · 3 h 30

Modéliser avec des classes

  • Définir attributs, initialisation, méthodes et invariants.
  • Utiliser propriétés et dataclasses quand elles simplifient le modèle.
  • Distinguer identité, égalité et représentation d'un objet.
  • Définir invariants, attributs, propriétés et représentation des objets ; comparer classe classique et dataclass.
Notions et méthodes en détail
  • Définir état, invariants, constructeur et méthodes ; distinguer attribut de classe et d’instance.
  • Comparer classe classique et dataclass selon validation, égalité et mutabilité.
  • Encapsuler une modification d’état et choisir une représentation lisible pour le débogage.

Atelier prévuCréer un article dont le stock reste valide après entrée et sortie ; tester une quantité négative et un stock insuffisant.

Livrable attenduModèle objet avec invariants et exemples d’usage.

Vérification en atelierUn objet ne peut pas entrer dans un état invalide par une opération publique prévue.

Pour aller plus loin

Concevoir un objet qui refuse un état incohérent et reste compréhensible lors de son affichage ou de sa sérialisation.

Jour 02Choisir composition et héritage7 h · 2 séquences avec mise en pratique

Séquence 3 · 3 h 30

Choisir composition et héritage

  • Comparer composition, délégation et spécialisation.
  • Définir un contrat de comportement sans couplage aux détails.
  • Comprendre polymorphisme et responsabilité unique.
  • Distinguer relation est-un et possède-un ; examiner couplage, polymorphisme et substitution dans les contrats.
Notions et méthodes en détail
  • Utiliser composition pour déléguer une responsabilité et héritage pour une substitution justifiée.
  • Définir un contrat commun avec protocole ou classe abstraite ; tester les implémentations.
  • Examiner MRO et super sur un exemple limité sans construire une hiérarchie artificielle.

Atelier prévuAjouter deux politiques de remise sans multiplier les conditions dans le calcul de commande.

Livrable attenduDiagramme de conception et refactoring argumenté.

Vérification en atelierUne implémentation est remplacée sans modifier le code consommateur ni casser son contrat.

Pour aller plus loin

Remplacer une hiérarchie fragile par une composition et vérifier la compatibilité des comportements attendus.

Séquence 4 · 3 h 30

Fiabiliser les échanges de données

  • Lire et écrire JSON ou CSV avec gestion des erreurs.
  • Encapsuler accès aux fichiers et conversions.
  • Employer gestionnaires de contexte et journalisation utile.
  • Valider les données aux frontières, gérer exceptions métier et ressources avec des gestionnaires de contexte.
Notions et méthodes en détail
  • Séparer sérialisation et objets métier ; valider champs, types et version d’un document JSON.
  • Utiliser gestionnaires de contexte pour fermer fichiers et connexions même en cas d’erreur.
  • Traduire une erreur d’entrée en exception métier tout en conservant sa cause technique.

Atelier prévuConstruire un dépôt d'articles et gérer un fichier absent, corrompu ou contenant un article invalide.

Livrable attenduCouche d’échange robuste et catalogue d’erreurs.

Vérification en atelierUn fichier incorrect est refusé sans création partielle d’objets incohérents.

Pour aller plus loin

Simuler un fichier corrompu ou une interruption d’écriture et préserver un état cohérent de l’application.

Jour 03Créer une interface graphique simple7 h · 2 séquences avec mise en pratique

Séquence 5 · 3 h 30

Créer une interface graphique simple

  • Relier widgets, événements et validation utilisateur.
  • Séparer affichage, logique métier et persistance.
  • Éviter les traitements bloquants dans la boucle d'événements.
  • Séparer widgets, état de l’interface et logique métier ; expliquer la boucle d’événements et les traitements bloquants.
Notions et méthodes en détail
  • Construire fenêtres, widgets et callbacks avec une séparation entre interface et services.
  • Valider une saisie, afficher un retour et empêcher une action incompatible avec l’état courant.
  • Comprendre la boucle d’événements et repérer un traitement long qui bloque l’interface.

Atelier prévuCréer une fenêtre de consultation et de saisie d'articles qui réutilise les classes métier testées.

Livrable attenduInterface événementielle et découpage présentation/métier.

Vérification en atelierLa même opération métier fonctionne depuis l’interface et depuis un test sans fenêtre.

Pour aller plus loin

Maintenir l’interface réactive pendant une opération longue et éviter les modifications concurrentes de son état.

Séquence 6 · 3 h 30

Tester et améliorer la conception

  • Écrire tests unitaires, fixtures et cas limites.
  • Utiliser types et analyse statique pour clarifier les contrats.
  • Refactorer en conservant les comportements validés.
  • Tester comportements publics, cas limites et dépendances externes ; distinguer mock utile et test lié aux détails internes.
Notions et méthodes en détail
  • Tester invariants, erreurs et transitions avec fixtures et dépendances remplacées.
  • Repérer responsabilités trop larges et extraire une collaboration sans changer le comportement.
  • Comparer duplication, couplage et lisibilité avant/après une refonte ciblée.

Atelier prévuLivrer le gestionnaire avec tests, notice et schéma des responsabilités ; démontrer l'ajout d'un nouveau stockage sans réécrire l'interface.

Livrable attenduSuite de tests et dossier de décisions de conception.

Vérification en atelierLes tests de comportement restent verts après le changement de conception.

Pour aller plus loin

Faire évoluer une règle métier avec une suite de non-régression puis mesurer la réduction du couplage.

Mettre vos acquis à l’épreuve

Évaluation finale prévue

Mise en situation individuelle et restitution commentée, incluses dans la dernière séquence. Durée indicative : 60 minutes.

Critères de réussite
  • Les invariants métier sont protégés par le modèle.
  • La logique reste testable sans interface graphique.
  • Les erreurs de fichiers produisent un comportement explicite.

Adaptation et validation pédagogique. Version enrichie proposée, à valider par le formateur. Répartition pédagogique proposée sur une base de 7 heures par jour, pauses exclues. À ajuster avec le formateur au positionnement initial. Les approfondissements « Pour aller plus loin » sont sélectionnés par le formateur selon le positionnement et le temps disponible ; ils ne constituent pas des heures supplémentaires garanties.

Les ateliers décrivent les travaux prévus. Leurs fichiers, corrigés et évaluations en ligne sont à préparer, sauf ressources explicitement disponibles dans le module pilote.

Références pour approfondir

Documentation des organismes et éditeurs. La progression et les ateliers sont une rédaction originale pour Beyond Expertise.

Pour obtenir plus de détails ou le programme détaillé, contactez le centre Beyond Expertise.

Contacter le centre

Accès, accompagnement et reconnaissance

Le centre doit confirmer les prérequis, le programme final, les dates, les horaires et le tarif avant inscription. Le délai d’accès dépend des disponibilités et du besoin. L’ouverture d’une session et la disponibilité d’un cours e-learning sont confirmées avant inscription.

Les ateliers, méthodes et évaluations du programme sont proposés pour validation pédagogique. Les supports effectivement disponibles sont indiqués dans la section « Contenu e-learning ».

Le parcours ne délivre pas de diplôme ni de certification professionnelle. Aucune éligibilité CPF ou prise en charge n’est garantie. Toute préparation à un examen externe devra faire l’objet d’informations et d’habilitations vérifiées.

Contenu e-learning

Cours disponible · en validation pédagogique

Python POO — cours, TP et notebooks du formateur

Durée indicative : 7023 minutes. Ce module couvre une partie du parcours 3 jours présenté sur le site officiel.

  1. Utiliser les nouveaux cours et notebooks10 min
  2. Démarrer avec Python, Jupyter et les premières données20 min
  3. Pratiquer — Démarrer avec Python, Jupyter et les premières données45 min
  4. Interpréteur, environnements virtuels, IPython et scripts20 min
  5. Pratiquer — Interpréteur, environnements virtuels, IPython et scripts45 min
  6. Types, opérations et structures de données simples20 min
  7. Pratiquer — Types, opérations et structures de données simples45 min
  8. Décisions, boucles et match/case20 min
  9. Pratiquer — Décisions, boucles et match/case45 min
  10. Fonctions, paramètres, retours et exceptions simples — partie 120 min
  11. Fonctions, paramètres, retours et exceptions simples — partie 220 min
  12. Pratiquer — Fonctions, paramètres, retours et exceptions simples45 min
  13. Variante — Fonctions, paramètres, retours et exceptions simples20 min
  14. Pratiquer — Variante — Fonctions, paramètres, retours et exceptions simples45 min
  15. Modules standard, expressions régulières et scripts exécutables — partie 120 min
  16. Modules standard, expressions régulières et scripts exécutables — partie 220 min
  17. Pratiquer — Modules standard, expressions régulières et scripts exécutables45 min
  18. Variante — Modules standard, expressions régulières et scripts exécutables20 min
  19. Pratiquer — Variante — Modules standard, expressions régulières et scripts exécutables45 min
  20. Fondations de la programmation orientée objet20 min
  21. Pratiquer — Fondations de la programmation orientée objet45 min
  22. Variante — Classes, objets, self et encapsulation20 min
  23. Pratiquer — Variante — Classes, objets, self et encapsulation45 min
  24. Héritage, polymorphisme, méthodes de classe, dataclasses et UML — partie 120 min
  25. Héritage, polymorphisme, méthodes de classe, dataclasses et UML — partie 220 min
  26. Pratiquer — Héritage, polymorphisme, méthodes de classe, dataclasses et UML45 min
  27. Variante — Cycle de vie des objets, dataclasses et UML de base20 min
  28. Pratiquer — Variante — Cycle de vie des objets, dataclasses et UML de base45 min
  29. Classes abstraites, polymorphisme contractuel et exceptions métier — partie 120 min
  30. Classes abstraites, polymorphisme contractuel et exceptions métier — partie 220 min
  31. Pratiquer — Classes abstraites, polymorphisme contractuel et exceptions métier45 min
  32. Variante — Héritage, polymorphisme, classes abstraites et exceptions métier20 min
  33. Pratiquer — Variante — Héritage, polymorphisme, classes abstraites et exceptions métier45 min
  34. Héritage multiple, mixins, MRO et design patterns légers — partie 120 min
  35. Héritage multiple, mixins, MRO et design patterns légers — partie 220 min
  36. Pratiquer — Héritage multiple, mixins, MRO et design patterns légers45 min
  37. Variante — Héritage multiple, mixins, MRO et design patterns légers20 min
  38. Pratiquer — Variante — Héritage multiple, mixins, MRO et design patterns légers45 min
  39. Collections Python : listes, tuples, dictionnaires et ensembles — partie 120 min
  40. Collections Python : listes, tuples, dictionnaires et ensembles — partie 220 min
  41. Pratiquer — Collections Python : listes, tuples, dictionnaires et ensembles45 min
  42. Variante — Listes, tuples, dictionnaires et ensembles20 min
  43. Pratiquer — Variante — Listes, tuples, dictionnaires et ensembles45 min
  44. Compréhensions, map / filter / reduce, piles et files — partie 120 min
  45. Compréhensions, map / filter / reduce, piles et files — partie 220 min
  46. Pratiquer — Compréhensions, map / filter / reduce, piles et files45 min
  47. Variante — Compréhensions, map/filter/reduce, piles et files20 min
  48. Pratiquer — Variante — Compréhensions, map/filter/reduce, piles et files45 min
  49. Itérateurs, générateurs et traitement progressif — partie 120 min
  50. Itérateurs, générateurs et traitement progressif — partie 220 min
  51. Pratiquer — Itérateurs, générateurs et traitement progressif45 min
  52. Variante — Itérateurs, générateurs et traitement progressif20 min
  53. Pratiquer — Variante — Itérateurs, générateurs et traitement progressif45 min
  54. Packages, imports, PyPI et organisation d’un projet — partie 120 min
  55. Packages, imports, PyPI et organisation d’un projet — partie 220 min
  56. Pratiquer — Packages, imports, PyPI et organisation d’un projet45 min
  57. Variante — Packages, imports, PyPI et organisation d'un projet20 min
  58. Pratiquer — Variante — Packages, imports, PyPI et organisation d'un projet45 min
  59. Fichiers CSV, JSON et XML20 min
  60. Pratiquer — Fichiers CSV, JSON et XML45 min
  61. Variante — Fichiers CSV, JSON et XML20 min
  62. Pratiquer — Variante — Fichiers CSV, JSON et XML45 min
  63. SQLite, DAO/CRUD et introduction à l'ORM20 min
  64. Pratiquer — SQLite, DAO/CRUD et introduction à l'ORM45 min
  65. Variante — SQLite, DAO/CRUD et introduction à l'ORM20 min
  66. Pratiquer — Variante — SQLite, DAO/CRUD et introduction à l'ORM45 min
  67. HTTP, API REST, JSON et validation de données20 min
  68. Pratiquer — HTTP, API REST, JSON et validation de données45 min
  69. Variante — HTTP, API REST, JSON et validation de données20 min
  70. Pratiquer — Variante — HTTP, API REST, JSON et validation de données45 min
  71. Requêtes robustes, timeouts, retries et Pydantic20 min
  72. Pratiquer — Requêtes robustes, timeouts, retries et Pydantic45 min
  73. Variante — Requêtes robustes, timeouts, retries et Pydantic20 min
  74. Pratiquer — Variante — Requêtes robustes, timeouts, retries et Pydantic45 min
  75. Tkinter : widgets, layouts et événements20 min
  76. Pratiquer — Tkinter : widgets, layouts et événements45 min
  77. Variante — Tkinter : widgets, layouts et événements20 min
  78. Pratiquer — Variante — Tkinter : widgets, layouts et événements45 min
  79. Tests, doctest, documentation, profiling et qualité de code20 min
  80. Pratiquer — Tests, doctest, documentation, profiling et qualité de code45 min
  81. Variante — Tests, doctest, documentation, profiling et qualité de code20 min
  82. Pratiquer — Variante — Tests, doctest, documentation, profiling et qualité de code45 min
  83. Du procédural à l’objet — fonctions et fichiers20 min
  84. Pratiquer — Du procédural à l’objet — fonctions et fichiers45 min
  85. Du procédural à l’objet — équipes sportives, classe par classe — partie 120 min
  86. Du procédural à l’objet — équipes sportives, classe par classe — partie 220 min
  87. Du procédural à l’objet — équipes sportives, classe par classe — partie 320 min
  88. Pratiquer — Du procédural à l’objet — équipes sportives, classe par classe45 min
  89. Du besoin métier au premier programme25 min
  90. Valeurs, choix, boucles, fonctions et collections35 min
  91. Du premier interpréteur au projet reproductible25 min
  92. Choisir une action avec match/case15 min
  93. Passer d’un dictionnaire à un objet métier30 min
  94. Instanciation, __init__ et self, ligne par ligne40 min
  95. Attributs de classe, alias et durée de vie35 min
  96. Checkpoint 1 — Personne : un état valide20 min
  97. Cycle de vie, diagrammes et responsabilités25 min
  98. Un objet valide avant et après chaque opération45 min
  99. Faire évoluer une interface avec @property30 min
  100. Personne, Participant et Formateur45 min
  101. Héritage multiple, MRO et composition35 min
  102. Checkpoint 2 — Participant : identité et présentation20 min
  103. Checkpoint 3 — Formateur : spécialiser sans dupliquer20 min
  104. Checkpoint 4 — Formation : encapsuler la durée20 min
  105. Utiliser des objets par leur comportement40 min
  106. Assembler des responsabilités35 min
  107. Checkpoint 5 — Session : composer les objets20 min
  108. Rendre ses objets naturels à utiliser35 min
  109. Méthodes d’instance, de classe et statiques30 min
  110. Traiter les échecs sans masquer les défauts40 min
  111. Décrire les contrats avec les annotations25 min
  112. Dataclasses et valeurs par défaut indépendantes35 min
  113. Checkpoint 6 — Inscription : capacité et doublons30 min
  114. Modules, packages et dépendances40 min
  115. Tester un comportement et diagnostiquer une régression40 min
  116. Checkpoint 7 — Persistance : reconstruire des objets valides30 min
  117. Checkpoint 8 — Évaluation : données et règles30 min
  118. Checkpoint 9 — Tests : conserver les invariants30 min
  119. Mesurer, documenter et relire le projet30 min
  120. Itérateurs, générateurs et choix des collections40 min
  121. Lire des fichiers, CSV et JSON avec des contrats explicites45 min
  122. Base de données, transactions et requêtes paramétrées45 min
  123. Atelier local : API, XML et interface graphique120 min
  124. Filtrage textuel et frontières du système25 min
  125. Atelier approfondi : stockage, validation et interface55 min
  126. TP de synthèse — livrer une application expliquée90 min

Exemples exécutables, atelier guidé, jeu de données synthétique, TP avec remise au formateur et quiz de dix questions. Le corrigé du TP devient accessible après le retour du formateur.

Accéder à mon module attribué
Origine des informations et statut du programme

Durée, niveau, modalités, objectifs et tarif relevés sur le site officiel le 11 septembre 2026. Le déroulé détaillé a été enrichi par Beyond Expertise. Validation pédagogique du formateur à réaliser avant animation.

Consulter la fiche du site officiel