[{"data":1,"prerenderedAt":46},["ShallowReactive",2],{"course-python-approfondissement-des-concepts-et-bonnes-pratiques":3,"highlight-Python-from typing import L":45},{"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":17,"maximumParticipants":17,"duration":18,"reference":19,"trainerType":7,"updated_at":20,"created_at":21,"price":22,"organizationMode":7,"theme":23,"code":27,"tags":32,"metadata":36},"/api/courses/10c0d200-9199-4be1-8891-d05ed401bdf7","Python – Approfondissement des concepts et bonnes pratiques ","python-approfondissement-des-concepts-et-bonnes-pratiques",null,"Développeurs Python souhaitant approfondir des concepts clés du langage. \n\nProfessionnels techniques désireux de renforcer la qualité, la performance et la maintenabilité de leurs programmes Python. \n\nToute personne ayant déjà utilisé Python et souhaitant passer à un niveau plus avancé.","-   Maîtrise des bases du langage Python (structures de contrôle, fonctions, collections simples). \n-   Confort avec un environnement de développement Python (éditeur, terminal, gestion de paquets). \n-   Expérience pratique de programmation avec Python sur des projets simples. ","-   Exploiter des constructions avancées du langage Python. \n-   Utiliser efficacement des modules standards et des bibliothèques courantes pour des tâches complexes. \n-   Structurer des projets Python avec des pratiques professionnelles recommandées. \n-   Maîtriser des techniques de gestion des erreurs, de tests et de documentation. \n-   Optimiser du code pour la performance et la lisibilité. ","--day1--\n\n## Rappels avancés et structures Python \n\n-   Récapitulatif des types de base et des structures de données. \n-   Compréhension et utilisation avancée des listes, tuples, sets et dictionnaires. \n-   Compréhension des itérateurs, générateurs et de la fonction yield. \n-   Exercices guidés : application de constructions avancées de collections. \n\n--break--\n\n## Fonctions avancées et programmation fonctionnelle \n\n-   Décorateurs : principes, utilisation et création de décorateurs personnalisés. \n-   Fonctions lambda, compréhension de listes, expressions génératrices. \n-   Modules functools et itertools pour des traitements efficaces. \n-   Atelier pratique : refactorisation de fonctions existantes avec des patterns fonctionnels. \n\n--day2--\n\n## Programmation orientée objet avancée \n\n-   Classes avancées : héritage multiple, classes abstraites, méthodes spéciales. \n-   Propriétés, contrôleurs d’accès et encapsulation. \n-   Introduction aux dataclasses pour structurer les objets. \n-   Exercices pratiques : modélisation orientée objet améliorée. \n\n--break--\n\n## Gestion des erreurs et bonnes pratiques \n\n-   Gestion avancée des exceptions : classes d’erreurs personnalisées. \n-   Utilisation du module logging pour une journalisation structurée. \n-   Bonnes pratiques de structuration et conventions PEP8. \n-   Atelier : ajout de log et traitement d’erreurs à un projet Python existant. \n\n--day3--\n\n## Tests, qualité et documentation \n\n-   Écriture de tests unitaires avec unittest ou pytest. \n-   Tests paramétrés, fixtures et mocks pour couvrir les cas d’usage. \n-   Génération de documentation avec docstrings et outils comme Sphinx. \n-   Exercices pratiques : tests automatisés et rapport de couverture. \n\n--break--\n\n## Optimisation, packaging et déploiement \n\n-   Analyse et optimisation de performance (profilers, timeit). \n-   Structuration d’un projet Python professionnel (répertoires, modules, packaging). \n-   Création de paquets installables (setup.py / pyproject.toml). \n-   Introduction à la distribution sur PyPI et bonnes pratiques de versioning. \n-   Synthèse des acquis, revue des exercices et recommandations pour aller plus loin.","Nos formations, équilibrées entre théorie (50%) et pratique (50%), offrent un apprentissage interactif grâce à des méthodes variées comme les travaux pratiques, les mises en situation et les démonstrations. Des QCM réguliers assurent le suivi des acquis.\n\nVariables suivant les formations, les moyens techniques mis en oeuvre sont :\n\nOrdinateurs Mac ou PC, connexion internet fibre, tableau blanc ou écran (pour le distanciel).\n\nEn cas de formation intra sur site externe à Le Code, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires\n\n(équipements informatiques...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué","Les supports pédagogiques sont remis aux stagiaires sous format numérique et/ou papier selon les modalités de la formation.\n\n  \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\n  \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\n  \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\n\nouvré.","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\n\nformation et ses modules, puis nous vous adresserons un devis.\n\nLes dates de la formation seront à convenir sous 30 jours maximum.",0,"21.00","pyth av","2026-04-22T13:37:40+00:00","2026-04-22T13:32:36+00:00","2100.00",{"id":24,"name":25,"slug":26},"/api/themes/08de519f-b33c-4368-84f7-564b178cc5ba","Développement logiciel","developpement-logiciel",{"id":28,"label":29,"domain":30},"/api/training_specialities/163","326 - Informatique, traitement de l’information, réseaux de transmission des données",{"label":31},"32 - Communication et information",[33],{"id":34,"name":35},"7732139d-6025-4fde-b145-39298ced3408","MENUFEATURED",{"desc-accroche":37,"Description":38,"icon-color":39,"icon-name":40,"code-langage":41,"code-snippet":42,"courte-description":43,"titre-accroche":44},"Passez au niveau expert avec Python : maîtrisez les concepts avancés comme les décorateurs, les itérateurs, les context managers et la programmation asynchrone avec asyncio. Appliquez les principes du Clean Code et les outils de typage statique (mypy) pour des projets d'envergure.","Cette formation est destinée aux développeurs souhaitant approfondir leur maîtrise de Python et industrialiser leur production. Nous explorons les mécanismes internes du langage (le protocole d'itération, la gestion de la mémoire, le GIL) ainsi que les techniques de refactoring avancées. Vous apprendrez à utiliser le typage statique pour sécuriser vos bases de code, à implémenter des Design Patterns spécifiques à Python et à optimiser vos performances grâce à la programmation concurrente. L'objectif est de produire un code élégant, testable et conforme aux standards professionnels les plus élevés.","#3776AB","mdi:language-python","Python","from typing import List, Optional\nimport asyncio\n\nclass DataProcessor:\n\tdef __init__(self, items: List[int]):\n\t\tself.items = items\n\n\tasync def process_async(self) -> Optional[int]:\n\t\t# Utilisation de la programmation asynchrone\n\t\tif not self.items:\n\t\t\treturn None\n\t\tawait asyncio.sleep(1)\n\t\treturn sum(x for x in self.items if x % 2 == 0)\n\n# Décorateur de logging\n@logger\ndef compute_metrics(data):\n\treturn [x ** 2 for x in data]","Approfondissez vos connaissances en Python : maîtrisez les concepts avancés, la programmation asynchrone et les bonnes pratiques pour des architectures logicielles robustes.","Expertisez vos développements Python en adoptant les patterns avancés et les meilleures pratiques d'ingénierie logicielle pour un code performant et maintenable.","\u003Cpre class=\"hljs\">\u003Ccode class=\"language-python\">\u003Cspan class=\"hljs-keyword\">from\u003C/span> typing \u003Cspan class=\"hljs-keyword\">import\u003C/span> \u003Cspan class=\"hljs-type\">List\u003C/span>, \u003Cspan class=\"hljs-type\">Optional\u003C/span>\n\u003Cspan class=\"hljs-keyword\">import\u003C/span> asyncio\n\n\u003Cspan class=\"hljs-keyword\">class\u003C/span> \u003Cspan class=\"hljs-title class_\">DataProcessor\u003C/span>:\n\t\u003Cspan class=\"hljs-keyword\">def\u003C/span> \u003Cspan class=\"hljs-title function_\">__init__\u003C/span>(\u003Cspan class=\"hljs-params\">self, items: \u003Cspan class=\"hljs-type\">List\u003C/span>[\u003Cspan class=\"hljs-built_in\">int\u003C/span>]\u003C/span>):\n\t\t\u003Cspan class=\"hljs-variable language_\">self\u003C/span>.items = items\n\n\t\u003Cspan class=\"hljs-keyword\">async\u003C/span> \u003Cspan class=\"hljs-keyword\">def\u003C/span> \u003Cspan class=\"hljs-title function_\">process_async\u003C/span>(\u003Cspan class=\"hljs-params\">self\u003C/span>) -&gt; \u003Cspan class=\"hljs-type\">Optional\u003C/span>[\u003Cspan class=\"hljs-built_in\">int\u003C/span>]:\n\t\t\u003Cspan class=\"hljs-comment\"># Utilisation de la programmation asynchrone\u003C/span>\n\t\t\u003Cspan class=\"hljs-keyword\">if\u003C/span> \u003Cspan class=\"hljs-keyword\">not\u003C/span> \u003Cspan class=\"hljs-variable language_\">self\u003C/span>.items:\n\t\t\t\u003Cspan class=\"hljs-keyword\">return\u003C/span> \u003Cspan class=\"hljs-literal\">None\u003C/span>\n\t\t\u003Cspan class=\"hljs-keyword\">await\u003C/span> asyncio.sleep(\u003Cspan class=\"hljs-number\">1\u003C/span>)\n\t\t\u003Cspan class=\"hljs-keyword\">return\u003C/span> \u003Cspan class=\"hljs-built_in\">sum\u003C/span>(x \u003Cspan class=\"hljs-keyword\">for\u003C/span> x \u003Cspan class=\"hljs-keyword\">in\u003C/span> \u003Cspan class=\"hljs-variable language_\">self\u003C/span>.items \u003Cspan class=\"hljs-keyword\">if\u003C/span> x % \u003Cspan class=\"hljs-number\">2\u003C/span> == \u003Cspan class=\"hljs-number\">0\u003C/span>)\n\n\u003Cspan class=\"hljs-comment\"># Décorateur de logging\u003C/span>\n\u003Cspan class=\"hljs-meta\">@logger\u003C/span>\n\u003Cspan class=\"hljs-keyword\">def\u003C/span> \u003Cspan class=\"hljs-title function_\">compute_metrics\u003C/span>(\u003Cspan class=\"hljs-params\">data\u003C/span>):\n\t\u003Cspan class=\"hljs-keyword\">return\u003C/span> [x ** \u003Cspan class=\"hljs-number\">2\u003C/span> \u003Cspan class=\"hljs-keyword\">for\u003C/span> x \u003Cspan class=\"hljs-keyword\">in\u003C/span> data]\u003C/code>\u003C/pre>",1781121858158]