[{"data":1,"prerenderedAt":45},["ShallowReactive",2],{"course-python-programmation-objet":3,"highlight-python-from dataclasses imp":44},{"id":4,"name":5,"slug":6,"location":7,"targetAudienceFormatMarkdown":8,"prerequisitesFormatMarkdown":9,"objectivesFormatMarkdown":10,"descriptionFormatMarkdown":11,"teachingMethodsFormatMarkdown":12,"teachingResourcesFormatMarkdown":13,"evaluationMethodsFormatMarkdown":14,"accessibilityFormatMarkdown":15,"accessMethodsFormatMarkdown":16,"minimumParticipants":7,"maximumParticipants":7,"duration":17,"reference":18,"trainerType":7,"updated_at":19,"created_at":20,"price":21,"organizationMode":22,"theme":25,"code":29,"tags":34,"metadata":35},"/api/courses/0b5ec0cb-b298-11f1-a993-d8ca06000363","Python : programmation objet","python-programmation-objet",null,"Développeurs Python souhaitant structurer leurs programmes, scientifiques et analystes produisant du code durable.","Pratique des bases de Python : types, fonctions, fichiers.","Concevoir des programmes Python orientés objet, testés et documentés.","--day1--\n\n## Classes et instances\n\n-   Définition de classes ; attributs d'instance et de classe ; méthodes ; représentation des objets ; propriétés.\n\n--break--\n\n## Héritage et composition\n\n-   Héritage et super() ; classes abstraites ; composition contre héritage ; polymorphisme et duck typing.\n\n--day2--\n\n## Méthodes spéciales\n\n-   Surcharge d'opérateurs ; itérables et itérateurs ; gestionnaires de contexte ; dataclasses.\n\n--break--\n\n## Structurer un projet\n\n-   Modules, paquets et imports ; organisation des répertoires ; environnements virtuels ; dépendances et fichiers de configuration.\n\n--day3--\n\n## Tests\n\n-   pytest : structure, assertions, fixtures ; paramétrage des tests ; doublures et mocks ; couverture de code.\n\n--break--\n\n## Qualité et livraison\n\n-   Typage avec les annotations et mypy ; formatage et analyse statique (ruff, black) ; journalisation ; documentation ; préparation PCAP (en option).","Présentiel, distanciel, hybride","Les supports pédagogiques sont remis aux stagiaires sous format numérique et/ou papier selon les modalités de la formation.\n\nIls comprennent des supports de cours, des présentations, des fiches pratiques, des études de cas, des exercices applicatifs ainsi que des QCM d’entraînement selon la formation. (adapté au choix du formateur)\n\nLes formations s’appuient sur des moyens techniques adaptés : ordinateurs, logiciels professionnels, connexion internet, écran ou vidéoprojecteur, ainsi que des outils collaboratifs et de visioconférence pour les formations à distance.\n\nL’ensemble des supports pédagogiques est accessible pendant et après la formation afin de favoriser l’appropriation et la mise en pratique des compétences acquises.","En amont de la formation, un recueil des besoins permet de récolter des informations sur le stagiaire et ses attentes. L’évaluation se fait en cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation et/ou un examen.\n\nUn suivi de qualité est effectué grâce à nos sessions en groupe restreint (entre 2 et 9 participants maximum). Le stagiaire émargera par demi-journée et recevra une attestation de formation.","Nous informons l’ensemble de nos clients et stagiaires que nous sommes dans la capacité d’adapter les sessions selon les handicaps et les situations spécifiques. Nous nous engageons à répondre à toutes vos demandes sous un délai de 48h ouvré.","Si l’une de nos formations vous intéresse, contactez-nous au +33 4 93 65 34 24 ou à l’adresse mail contact@m2g-intellect.fr. Selon votre besoin et vos attentes, nous organiserons un échange téléphonique avec le formateur pressenti afin d’adapter la formation et ses modules, puis nous vous adresserons un devis.\n\nLes dates de la formation seront à convenir sous 30 jours maximum.","21.00","L1-DEV-12","2026-09-18T09:45:10+00:00","2026-09-17T15:02:32+00:00","1980.00",{"id":23,"name":24},"/api/organization_mode_types/6","HYBRID",{"id":26,"name":27,"slug":28},"/api/themes/0ac148c3-b298-11f1-a993-d8ca06000363","Développement logiciel informatique et web","developpement-logiciel-informatique-et-web",{"id":30,"label":31,"domain":32},"/api/training_specialities/163","326 - Informatique, traitement de l’information, réseaux de transmission des données",{"label":33},"32 - Communication et information",[],{"desc-accroche":36,"Description":37,"icon-color":38,"icon-name":39,"code-langage":40,"code-snippet":41,"courte-description":42,"titre-accroche":43},"Organisez classes, héritage et composition, découpez votre code en modules et paquets réutilisables, et couvrez vos objets par des tests automatisés et une documentation claire.","Cette formation fait passer du script isolé à l'application structurée en s'appuyant sur la conception orientée objet de Python. Elle couvre la définition de classes et l'usage raisonné de l'héritage et de la composition, les propriétés et les méthodes spéciales du langage, ainsi que l'organisation du code en modules et en paquets installables. Une part importante est consacrée aux tests automatisés avec unittest ou pytest, comme filet de sécurité lors des évolutions, et à la documentation du code (docstrings, génération automatique) pour qu'un tiers puisse reprendre le projet sans reconstituer le contexte oralement. L'objectif affiché est un code que quelqu'un d'autre pourra réellement reprendre. Elle s'adresse aux développeurs Python souhaitant structurer leurs programmes, ainsi qu'aux scientifiques et analystes produisant du code destiné à durer.","#3776AB","mdi:language-python","python","from dataclasses import dataclass, field\n\n@dataclass\nclass CompteBancaire:\n    titulaire: str\n    solde: float = 0.0\n    historique: list[str] = field(default_factory=list)\n\n    def deposer(self, montant: float) -> None:\n        if montant \u003C= 0:\n            raise ValueError(\"Montant invalide\")\n        self.solde += montant\n        self.historique.append(f\"depot de {montant}\")","Formation Python orientée objet : conception de classes, organisation en modules et paquets, tests automatisés et documentation pour du code durable.","Passez du script à l'application en structurant vos programmes Python autour d'objets testés, documentés et faciles à reprendre.","\u003Cpre class=\"hljs\">\u003Ccode class=\"language-python\">\u003Cspan class=\"hljs-keyword\">from\u003C/span> dataclasses \u003Cspan class=\"hljs-keyword\">import\u003C/span> dataclass, field\n\n\u003Cspan class=\"hljs-meta\">@dataclass\u003C/span>\n\u003Cspan class=\"hljs-keyword\">class\u003C/span> \u003Cspan class=\"hljs-title class_\">CompteBancaire\u003C/span>:\n    titulaire: \u003Cspan class=\"hljs-built_in\">str\u003C/span>\n    solde: \u003Cspan class=\"hljs-built_in\">float\u003C/span> = \u003Cspan class=\"hljs-number\">0.0\u003C/span>\n    historique: \u003Cspan class=\"hljs-built_in\">list\u003C/span>[\u003Cspan class=\"hljs-built_in\">str\u003C/span>] = field(default_factory=\u003Cspan class=\"hljs-built_in\">list\u003C/span>)\n\n    \u003Cspan class=\"hljs-keyword\">def\u003C/span> \u003Cspan class=\"hljs-title function_\">deposer\u003C/span>(\u003Cspan class=\"hljs-params\">self, montant: \u003Cspan class=\"hljs-built_in\">float\u003C/span>\u003C/span>) -&gt; \u003Cspan class=\"hljs-literal\">None\u003C/span>:\n        \u003Cspan class=\"hljs-keyword\">if\u003C/span> montant &lt;= \u003Cspan class=\"hljs-number\">0\u003C/span>:\n            \u003Cspan class=\"hljs-keyword\">raise\u003C/span> ValueError(\u003Cspan class=\"hljs-string\">&quot;Montant invalide&quot;\u003C/span>)\n        \u003Cspan class=\"hljs-variable language_\">self\u003C/span>.solde += montant\n        \u003Cspan class=\"hljs-variable language_\">self\u003C/span>.historique.append(\u003Cspan class=\"hljs-string\">f&quot;depot de \u003Cspan class=\"hljs-subst\">{montant}\u003C/span>&quot;\u003C/span>)\u003C/code>\u003C/pre>",1789717717663]