{"id":5785,"date":"2024-08-29T05:52:12","date_gmt":"2024-08-29T05:52:12","guid":{"rendered":"https:\/\/wikiform.fr\/codespace\/methodes-statiques-en-python-guide\/"},"modified":"2024-08-29T05:52:16","modified_gmt":"2024-08-29T05:52:16","slug":"methodes-statiques-en-python-guide","status":"publish","type":"post","link":"https:\/\/wikiform.fr\/codespace\/methodes-statiques-en-python-guide\/","title":{"rendered":"5.6 M\u00e9thodes Statiques en Python : Guide"},"content":{"rendered":"\n<p><strong>M\u00e9thodes Statiques en Python<\/strong> : Guide avec du contenu super pertinent qui permet aux lecteurs d&rsquo;apprendre et d&rsquo;appr\u00e9cier la lecture.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction aux <strong>M\u00e9thodes Statiques 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\/583357405?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) { \/\/ 120 seconds = 2 minutes\n                    \/\/ Pause the video and display the popup\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(); \/\/ Allows resuming the video only after closing the popup\n    }\n});\n<\/script>\n\n\n\n<p>Les <strong>M\u00e9thodes Statiques en Python<\/strong> permettent de cr\u00e9er des fonctions accessibles directement via une classe sans qu&rsquo;il soit n\u00e9cessaire de cr\u00e9er une instance de cette classe. Comprendre comment d\u00e9finir et utiliser les <strong>M\u00e9thodes Statiques<\/strong> est essentiel pour le d\u00e9veloppement de logiciels modulaire et performant. Apprenons comment elles fonctionnent et comment les impl\u00e9menter gr\u00e2ce \u00e0 des exemples concrets de code.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qu&rsquo;est-ce qu&rsquo;une M\u00e9thode Statique ?<\/h3>\n\n\n\n<p>En Python, une m\u00e9thode statique est une m\u00e9thode qui appartient \u00e0 la classe plut\u00f4t qu&rsquo;aux objets de la classe. Elle est d\u00e9clar\u00e9e avec le d\u00e9corateur <code>@staticmethod<\/code> et peut \u00eatre appel\u00e9e directement via la classe sans avoir besoin de cr\u00e9er une instance. Une m\u00e9thode statique n&rsquo;a pas acc\u00e8s \u00e0 l&rsquo;instance de la classe (self) ou \u00e0 la classe elle-m\u00eame (cls).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">D\u00e9finir une M\u00e9thode Statique en Python<\/h3>\n\n\n\n<p>Pour d\u00e9finir une m\u00e9thode statique, utilisez le d\u00e9corateur <code>@staticmethod<\/code> avant la d\u00e9finition de la m\u00e9thode. Voici un exemple simple :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>class Calculatrice:\n    @staticmethod\n    def ajouter(a, b):\n        return a + b\n\n# Utilisation de la m\u00e9thode statique sans cr\u00e9er une instance de la classe\nresultat = Calculatrice.ajouter(5, 3)\nprint(resultat)  # Affiche: 8\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Lorsque Utiliser des M\u00e9thodes Statiques<\/h3>\n\n\n\n<p>Les m\u00e9thodes statiques sont particuli\u00e8rement utiles lorsque vous avez une fonction utilitaire qui n\u2019a pas besoin d\u2019acc\u00e9der aux attributs ou m\u00e9thodes de l\u2019instance de la classe. Elles permettent de regrouper des fonctions logiquement li\u00e9es dans une classe, tout en indiquant clairement celles-ci n&rsquo;ont pas besoin d&rsquo;une r\u00e9f\u00e9rence d&rsquo;objet pour fonctionner.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Diff\u00e9rence entre M\u00e9thodes Statiques et M\u00e9thodes de Classe<\/h3>\n\n\n\n<p>Il est important de ne pas confondre les m\u00e9thodes statiques avec les m\u00e9thodes de classe. Tandis qu\u2019une m\u00e9thode statique n\u2019a acc\u00e8s ni \u00e0 l\u2019instance (self) ni \u00e0 la classe (cls), une m\u00e9thode de classe a acc\u00e8s \u00e0 la classe (cls) mais pas \u00e0 l\u2019instance. Voici un exemple comparatif :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>class Calculatrice:\n    facteur = 2\n\n    @staticmethod\n    def ajouter(a, b):\n        return a + b\n\n    @classmethod\n    def ajouter_avec_facteur(cls, a, b):\n        return cls.facteur * (a + b)\n\n# M\u00e9thode statique\nresultat_stat = Calculatrice.ajouter(5, 3)\nprint(resultat_stat)  # Affiche: 8\n\n# M\u00e9thode de classe\nresultat_cls = Calculatrice.ajouter_avec_facteur(5, 3)\nprint(resultat_cls)  # Affiche: 16\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Applications Pratiques des M\u00e9thodes Statiques<\/h3>\n\n\n\n<p>Les M\u00e9thodes Statiques en Python peuvent \u00eatre utilis\u00e9es dans divers sc\u00e9narios pratiques, par exemple pour cr\u00e9er des fonctions utilitaires centr\u00e9es sur la logique m\u00e9tier sans avoir besoin d&rsquo;instances sp\u00e9cifiques. Voici quelques exemples :<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Calculs Math\u00e9matiques<\/h4>\n\n\n\n<p>Les m\u00e9thodes statiques sont id\u00e9ales pour encapsuler des calculs math\u00e9matiques g\u00e9n\u00e9riques :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>class MathUtil:\n    @staticmethod\n    def factorielle(n):\n        if n == 0:\n            return 1\n        else:\n            return n * MathUtil.factorielle(n-1)\n\nprint(MathUtil.factorielle(5))  # Affiche: 120\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Traitement de Cha\u00eenes de Caract\u00e8res<\/h4>\n\n\n\n<p>Pour des op\u00e9rations de traitement de cha\u00eenes de caract\u00e8res qui n\u2019ont pas besoin d\u2019\u00e9tat d\u2019instance :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>class StringUtil:\n    @staticmethod\n    def to_uppercase(text):\n        return text.upper()\n\nprint(StringUtil.to_uppercase('hello'))  # Affiche: HELLO\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Tester des M\u00e9thodes Statiques<\/h3>\n\n\n\n<p>Le test des m\u00e9thodes statiques est direct puisque vous pouvez les appeler via la classe elle-m\u00eame. Voici comment cr\u00e9er des tests pour une m\u00e9thode statique :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import unittest\n\nclass TestCalculatrice(unittest.TestCase):\n    def test_ajouter(self):\n        self.assertEqual(Calculatrice.ajouter(2, 3), 5)\n        self.assertEqual(Calculatrice.ajouter(-1, 1), 0)\n\nif __name__ == '__main__':\n    unittest.main()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Avantages et Inconv\u00e9nients des M\u00e9thodes Statiques<\/h3>\n\n\n\n<p>Les M\u00e9thodes Statiques en Python offrent plusieurs avantages mais aussi quelques inconv\u00e9nients :<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Avantages<\/h4>\n\n\n\n<ul>\n  <li>Simplicit\u00e9 : Elles permettent de cr\u00e9er des fonctions simples et ind\u00e9pendantes de l\u2019\u00e9tat d\u2019instance.<\/li>\n  <li>Organisation : Regrouper des m\u00e9thodes logiquement coh\u00e9rentes au sein d\u2019une classe.<\/li>\n  <li>Performances : L\u00e9ger gain de performances puisqu&rsquo;elles n\u2019ont pas besoin d\u2019acc\u00e9der aux attributs de l\u2019instance.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Inconv\u00e9nients<\/h4>\n\n\n\n<ul>\n  <li>Pas de polymorphisme : Les m\u00e9thodes statiques ne peuvent pas \u00eatre surcharg\u00e9es en fonction de l&rsquo;instance.<\/li>\n  <li>Moins de flexibilit\u00e9 : Elles ne peuvent pas acc\u00e9der ou modifier l&rsquo;\u00e9tat de l&rsquo;instance ou de la classe.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>Les <strong>M\u00e9thodes Statiques en Python<\/strong> sont un outil puissant pour \u00e9crire du code clair et bien structur\u00e9. Elles permettent de d\u00e9finir des fonctions utilitaires au sein des classes sans n\u00e9cessiter une instance sp\u00e9cifique. Comprendre leur utilisation et leurs limitations vous permet d\u2019\u00e9crire des programmes plus modulaires et maintenables. Pour aller plus loin, explorez notre article sur les <a href=\"https:\/\/wikiform.fr\/codespace\/introduction-aux-fonctions-en-python\">fonctions en Python<\/a>, les <a href=\"https:\/\/wikiform.fr\/codespace\/creation-et-utilisation-des-classes-en-python\">classes Python<\/a> et les <a href=\"https:\/\/wikiform.fr\/codespace\/utiliser-les-operateurs-mathematiques-en-python\">op\u00e9rateurs math\u00e9matiques<\/a> pour enrichir vos comp\u00e9tences en programmation.<\/p>\n\n<p>Le sujet de cr\u00e9ation de modules en Python est \u00e9galement essentiel. Lisez notre guide complet sur la <a href=\"https:\/\/wikiform.fr\/codespace\/creer-des-modules-en-python-guide-pratique\">cr\u00e9ation des modules<\/a>. Pour ceux qui d\u00e9butent, comprendre <a href=\"https:\/\/wikiform.fr\/codespace\/premier-programme-python-hello-world\">l&rsquo;\u00e9criture d&rsquo;un premier programme Python<\/a> peut \u00eatre tr\u00e8s avantageux.<\/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","protected":false},"excerpt":{"rendered":"<p>M\u00e9thodes Statiques en Python : Guide avec du contenu super pertinent qui permet aux lecteurs d&rsquo;apprendre et d&rsquo;appr\u00e9cier la lecture. Introduction aux M\u00e9thodes Statiques en&#8230;<\/p>\n","protected":false},"author":4,"featured_media":2939,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[18],"class_list":["post-5785","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\/5785","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=5785"}],"version-history":[{"count":1,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5785\/revisions"}],"predecessor-version":[{"id":5786,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5785\/revisions\/5786"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media\/2939"}],"wp:attachment":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media?parent=5785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/categories?post=5785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/tags?post=5785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}