{"id":5765,"date":"2024-08-29T05:12:13","date_gmt":"2024-08-29T05:12:13","guid":{"rendered":"https:\/\/wikiform.fr\/codespace\/presentation-de-la-modularite-en-python\/"},"modified":"2024-08-29T05:12:16","modified_gmt":"2024-08-29T05:12:16","slug":"presentation-de-la-modularite-en-python","status":"publish","type":"post","link":"https:\/\/wikiform.fr\/codespace\/presentation-de-la-modularite-en-python\/","title":{"rendered":"4.1 Pr\u00e9sentation de la Modularit\u00e9 en Python"},"content":{"rendered":"\n<p><strong>La Modularit\u00e9 en Python<\/strong> est essentielle pour structurer et organiser le code de mani\u00e8re efficace. En utilisant des modules, vous pouvez diviser votre projet en morceaux r\u00e9utilisables, rendant le d\u00e9veloppement et la maintenance plus faciles. Apprenons comment fonctionne la modularit\u00e9 en Python et comment l\u2019impl\u00e9menter \u00e0 travers des exemples concrets de code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction \u00e0 la <strong>Modularit\u00e9 en Python<\/strong><\/h2>\n\n\n\n<div id=\"videoContainer\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;\">\n  <iframe src=\"https:\/\/player.vimeo.com\/video\/583343272?dnt=1&#038;fullscreen=0&#038;pip=0\" loading=\"lazy\" loading=\"lazy\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" frameborder=\"0\" allow=\"autoplay\" allowfullscreen id=\"vimeoPlayer\"><\/iframe>\n  \n  <!-- Popup Desktop -->\n  <div id=\"popupContainer\" class=\"desktop-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90%; max-width: 400px; padding: 20px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <h2 style=\"color: #333; font-size: 1.5em; margin: 10px 0;\" id=\"profitez-de-loffre-spciale-\">Profitez de l\u2019offre sp\u00e9ciale !<\/h2>\n    <p style=\"color: #e74c3c; font-size: 1.2em; margin: 10px 0;\">Obtenez notre cours pour seulement <strong id=\"price\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: block; padding: 10px 20px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 1em; margin: 20px auto;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 10px 20px; font-size: 1em;\">Fermer<\/button>\n  <\/div>\n  \n  <!-- Popup Mobile -->\n  <div id=\"popupContainerMobile\" class=\"mobile-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; max-width: 300px; padding: 15px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <p style=\"color: #e74c3c; font-size: 1em; margin: 5px 0;\">Cours sp\u00e9cial \u00e0 <strong id=\"priceMobile\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: inline-block; padding: 8px 15px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 0.9em;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 5px 10px; font-size: 0.9em;\">Fermer<\/button>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/player.vimeo.com\/api\/player.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    var iframe = document.getElementById('vimeoPlayer');\n    var player = new Vimeo.Player(iframe);\n    var isPopupDisplayed = false;\n\n    player.on('play', function() {\n        if (!isPopupDisplayed) {\n            player.on('timeupdate', function(data) {\n                if (data.seconds >= 120 && !isPopupDisplayed) {\n                    player.pause().then(function() {\n                        if (window.innerWidth > 768) {\n                            document.querySelector('.desktop-popup').style.display = 'block';\n                        } else {\n                            document.querySelector('.mobile-popup').style.display = 'block';\n                        }\n                        fetchPriceAndUpdatePopup();\n                        isPopupDisplayed = true;\n                    });\n                }\n            });\n        }\n    });\n\n    function fetchPriceAndUpdatePopup() {\n        fetch('https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144')\n            .then(response => response.text())\n            .then(html => {\n                var parser = new DOMParser();\n                var fetchedDoc = parser.parseFromString(html, 'text\/html');\n                var priceElement = fetchedDoc.querySelector('.ammount .fw-500');\n                var originalPriceElement = fetchedDoc.querySelector('.ammount del');\n                var price = priceElement ? priceElement.textContent.trim() : '29.5\u20ac';\n                var originalPrice = originalPriceElement ? originalPriceElement.textContent.trim() : '59\u20ac';\n\n                document.getElementById('price').textContent = price;\n                document.getElementById('priceMobile').textContent = price;\n                document.querySelector('.desktop-popup del').textContent = originalPrice;\n                document.querySelector('.mobile-popup del').textContent = originalPrice;\n            })\n            .catch(error => console.error('Error fetching the price:', error));\n    }\n\n    function closePopup() {\n        document.querySelector('.desktop-popup').style.display = 'none';\n        document.querySelector('.mobile-popup').style.display = 'none';\n        player.play();\n    }\n});\n<\/script>\n\n\n\n<p>Un module en Python est simplement un fichier contenant du code Python, tel que des fonctions ou des classes, que d&rsquo;autres fichiers Python peuvent importer et utiliser. La modularit\u00e9 permet de r\u00e9utiliser du code et de diviser un projet en modules logiques et ind\u00e9pendants. Voici comment cr\u00e9er et utiliser des modules en Python.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9er un Module en Python<\/h3>\n\n\n\n<p>Commen\u00e7ons par cr\u00e9er un module simple. Nous allons cr\u00e9er un fichier nomm\u00e9 <code>my_module.py<\/code> avec une fonction qui salue l&rsquo;utilisateur.<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># my_module.py\n\ndef greet(name):\n    return f\"Bonjour, {name}!\"\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Importer et Utiliser un Module<\/h3>\n\n\n\n<p>Pour utiliser le module que nous avons cr\u00e9\u00e9, il suffit de l&rsquo;importer dans un autre script Python. Voici comment faire :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># main.py\n\nimport my_module\n\nname = \"Alice\"\nprint(my_module.greet(name))\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Utiliser la D\u00e9claration <code>from ... import ...<\/code><\/h3>\n\n\n\n<p>Vous pouvez \u00e9galement importer des fonctions sp\u00e9cifiques d&rsquo;un module en utilisant la d\u00e9claration <code>from ... import ...<\/code>. Cela permet de ne charger que ce dont vous avez besoin, rendant votre code plus efficace.<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># main.py\n\nfrom my_module import greet\n\nname = \"Bob\"\nprint(greet(name))\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Utiliser des Modules Standards en Python<\/h3>\n\n\n\n<p>Python vient avec une vaste collection de modules standards que vous pouvez utiliser pour accomplir une vari\u00e9t\u00e9 de t\u00e2ches courantes. Par exemple, utilisons le module <code>math<\/code> pour des calculs math\u00e9matiques.<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># main.py\n\nimport math\n\nprint(math.sqrt(16))  # Retourne 4.0\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9er un Package Python<\/h3>\n\n\n\n<p>Un package est un dossier contenant plusieurs modules Python. Pour cr\u00e9er un package, cr\u00e9ez un dossier contenant des fichiers de module et un fichier <code>__init__.py<\/code>. Voici comment cr\u00e9er un package nomm\u00e9 <code>my_package<\/code> avec deux modules :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>my_package\/\n    __init__.py\n    module_one.py\n    module_two.py\n<\/code><\/pre>\n\n\n\n<p>Le fichier <code>__init__.py<\/code> peut \u00eatre vide ou contenir du code d&rsquo;initialisation pour le package.<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># module_one.py\ndef function_one():\n    return \"Function One\"\n\n# module_two.py\ndef function_two():\n    return \"Function Two\"\n\n# __init__.py\nfrom .module_one import function_one\nfrom .module_two import function_two\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Importer et Utiliser un Package<\/h3>\n\n\n\n<p>Pour utiliser le package que nous avons cr\u00e9\u00e9, importez les modules ou fonctions n\u00e9cessaires :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># main.py\n\nfrom my_package import function_one, function_two\n\nprint(function_one())\nprint(function_two())\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Exemples Avanc\u00e9s d&rsquo;Utilisation de Modules<\/h3>\n\n\n\n<p>Pour approfondir notre compr\u00e9hension de la modularit\u00e9 en Python, voici quelques exemples avanc\u00e9s qui montrent comment organiser un projet Python de mani\u00e8re modulaire.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Organisation d&rsquo;un Projet R\u00e9el<\/h4>\n\n\n\n<p>Consid\u00e9rons un projet plus complexe o\u00f9 la modularit\u00e9 est utilis\u00e9e pour rendre le code plus maintenable et r\u00e9utilisable. Imaginons un projet de gestion de biblioth\u00e8que avec des modules pour les livres, les utilisateurs, et les transactions :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>library_management\/\n    __init__.py\n    books\/\n        __init__.py\n        book.py\n        catalog.py\n    users\/\n        __init__.py\n        user.py\n        membership.py\n    transactions\/\n        __init__.py\n        borrow.py\n        return.py\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Importer des Modules \u00e0 Partir de Sous-Packages<\/h4>\n\n\n\n<p>Vous pouvez importer des modules \u00e0 partir de sous-packages en utilisant une notation point\u00e9e. Par exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># main.py\n\nfrom library_management.books.book import Book\nfrom library_management.users.user import User\n\nbook = Book(\"Python Programming\")\nuser = User(\"Alice\")\n\nprint(book.title)\nprint(user.name)\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Recharger des Modules<\/h4>\n\n\n\n<p>Durant le d\u00e9veloppement, il peut \u00eatre n\u00e9cessaire de recharger des modules pour refl\u00e9ter les changements sans red\u00e9marrer l&rsquo;interpr\u00e9teur Python. Cela peut \u00eatre fait \u00e0 l\u2019aide de la commande <code>reload<\/code> du module <code>importlib<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import importlib\nimport my_module\n\n# Modifier my_module.py puis recharger\nimportlib.reload(my_module)\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion sur la Modularit\u00e9 Python<\/h2>\n\n\n\n<p>La <strong>modularit\u00e9 en Python<\/strong> est une pratique fondamentale pour cr\u00e9er des applications scalables et maintenables. En divisant votre code en modules et packages, vous pouvez facilement r\u00e9utiliser des fonctions, am\u00e9liorer la lisibilit\u00e9 du code et simplifier les tests. Continuez \u00e0 explorer Python pour ma\u00eetriser davantage les concepts de modularit\u00e9 et autres techniques avanc\u00e9es. Pour plus de tutoriels sur Python, consultez notre article sur <a href=\"https:\/\/wikiform.fr\/codespace\/presentation-de-la-modularite-en-python\">les fonctionnalit\u00e9s interm\u00e9diaires et avanc\u00e9es de Python<\/a>. Pour apprendre \u00e0 structurer un projet Python, lisez notre <a href=\"https:\/\/wikiform.fr\/codespace\/structurer-un-projet-python-tutoriel\">tutoriel d\u00e9taill\u00e9<\/a>, ainsi que nos ressources sur <a href=\"https:\/\/wikiform.fr\/codespace\/creer-des-modules-en-python-guide-pratique\">cr\u00e9er des modules en Python<\/a>. Si vous d\u00e9butez en Python, d\u00e9couvrez comment <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-windows-facilement\">installer Python sur Windows facilement<\/a> ou sur <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-linux-ubuntu-etape-par-etape\">Linux Ubuntu \u00e9tape par \u00e9tape<\/a>.<\/p>\n\n\n\n<a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/wikiform.fr\/codespace\/wp-content\/uploads\/2024\/07\/learnify-formation-PYTHON-offre-50.gif\" loading=\"lazy\" alt=\"Learnify Formation Python Offre 50%\" title=\"\"><\/a>\n\n\n\n<h3 class=\"wp-block-heading\">Ressources Externes<\/h3>\n\n\n\n<p>Pour plus d&rsquo;informations sur la modularit\u00e9 en Python et des pratiques avanc\u00e9es, voici quelques ressources utiles :\n<ul>\n  <li><a href=\"https:\/\/realpython.com\/courses\/modules-and-packages-python\/\" target=\"_blank\" rel=\"noopener\">Real Python: Modules and Packages<\/a><\/li>\n  <li><a href=\"https:\/\/docs.python.org\/3\/tutorial\/modules.html\" target=\"_blank\" rel=\"noopener\">Python Official Documentation: Modules<\/a><\/li>\n  <li><a href=\"https:\/\/www.coursera.org\/courses?query=python\" target=\"_blank\" rel=\"noopener\">Coursera: Python Courses<\/a><\/li>\n  <li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Modular_programming\" target=\"_blank\" rel=\"noopener\">Wikipedia: Modular Programming<\/a><\/li>\n  <li><a href=\"https:\/\/www.udemy.com\/topic\/python\/\" target=\"_blank\" rel=\"noopener\">Udemy: Python Courses<\/a><\/li>\n<\/ul>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La Modularit\u00e9 en Python est essentielle pour structurer et organiser le code de mani\u00e8re efficace. En utilisant des modules, vous pouvez diviser votre projet en&#8230;<\/p>\n","protected":false},"author":4,"featured_media":2948,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[18],"class_list":["post-5765","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-tutoriels"],"acf":[],"_titre_de_la_formation":null,"_description_":null,"_objectifs_pedagogiques":null,"_programme_":null,"_url_de_limage":null,"_materiel_necessaire":null,"_modalites_devaluation_des_acquis":null,"_moyens_pedagogiques_et_techniques":null,"_accessibilite_":null,"_formateur_":null,"menu_order":0,"_links":{"self":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/comments?post=5765"}],"version-history":[{"count":1,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5765\/revisions"}],"predecessor-version":[{"id":5766,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5765\/revisions\/5766"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media\/2948"}],"wp:attachment":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media?parent=5765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/categories?post=5765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/tags?post=5765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}