{"id":5777,"date":"2024-08-29T05:36:31","date_gmt":"2024-08-29T05:36:31","guid":{"rendered":"https:\/\/wikiform.fr\/codespace\/creation-et-utilisation-des-classes-en-python\/"},"modified":"2024-08-29T05:36:35","modified_gmt":"2024-08-29T05:36:35","slug":"creation-et-utilisation-des-classes-en-python","status":"publish","type":"post","link":"https:\/\/wikiform.fr\/codespace\/creation-et-utilisation-des-classes-en-python\/","title":{"rendered":"5.2 Cr\u00e9ation et Utilisation des Classes en Python"},"content":{"rendered":"\u00ab\u00a0`html\n\n<p><strong>Cr\u00e9ation et Utilisation des Classes en Python<\/strong> est une comp\u00e9tence essentielle pour tout d\u00e9veloppeur Python. Apprendre \u00e0 ma\u00eetriser les classes et les objets en Python peut transformer votre approche de la programmation en la rendant plus modulaire, r\u00e9utilisable et facilement extensible. Dans ce tutoriel, nous allons explorer les bases de la cr\u00e9ation et de l&rsquo;utilisation des classes en Python \u00e0 travers des exemples de code concrets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction aux Classes en Python<\/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\/583349408?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 classes sont des structures qui vous permettent de cr\u00e9er vos propres types d&rsquo;objets en regroupant des donn\u00e9es et des fonctions qui op\u00e8rent sur ces donn\u00e9es. En utilisant des classes, vous pouvez mod\u00e9liser des concepts du monde r\u00e9el, simplifier la maintenance de votre code et r\u00e9utiliser le code de mani\u00e8re efficace.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9er une Classe en Python<\/h3>\n\n\n\n<p>Pour cr\u00e9er une classe en Python, vous utilisez le mot-cl\u00e9 <code>class<\/code> suivi du nom de la classe. Voici un exemple de base :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>class Personne:\n    def __init__(self, nom, age):\n        self.nom = nom\n        self.age = age\n\n    def saluer(self):\n        print(f\"Bonjour, je m'appelle {self.nom} et j'ai {self.age} ans.\")\n\n# Cr\u00e9ation d'une instance de la classe Personne\np1 = Personne(\"Alice\", 30)\np1.saluer()\n<\/code><\/pre>\n\n\n\n<p>Dans cet exemple, nous avons cr\u00e9\u00e9 une classe appel\u00e9e <code>Personne<\/code>. La m\u00e9thode <code>__init__<\/code> est un initialiseur qui est ex\u00e9cut\u00e9 lorsque nous cr\u00e9ons une nouvelle instance de la classe. La m\u00e9thode <code>saluer<\/code> est une m\u00e9thode d&rsquo;instance qui peut \u00eatre appel\u00e9e sur les objets cr\u00e9\u00e9s \u00e0 partir de cette classe. Si vous d\u00e9butez, vous pouvez consulter notre <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-windows-facilement\" target=\"_blank\" rel=\"noopener\">guide pour installer Python sur Windows<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Utilisation des Attributs et M\u00e9thodes<\/h3>\n\n\n\n<p>Les attributs de classe sont des variables qui appartiennent \u00e0 la classe. Les m\u00e9thodes de classe sont des fonctions qui op\u00e8rent sur les instances de la classe. Voici un exemple de comment utiliser ces concepts :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>class Voiture:\n    def __init__(self, marque, modele):\n        self.marque = marque\n        self.modele = modele\n        self.vitesse = 0\n\n    def accelerer(self):\n        self.vitesse += 10\n        print(f\"La {self.marque} {self.modele} acc\u00e9l\u00e8re \u00e0 {self.vitesse} km\/h.\")\n\n    def freiner(self):\n        self.vitesse -= 10\n        print(f\"La {self.marque} {self.modele} ralentit \u00e0 {self.vitesse} km\/h.\")\n\n# Cr\u00e9ation d'une instance de la classe Voiture\nma_voiture = Voiture(\"Tesla\", \"Model S\")\nma_voiture.accelerer()\nma_voiture.freiner()\n<\/code><\/pre>\n\n\n\n<p>Pour plus de d\u00e9tails sur la manipulation des m\u00e9thodes, consultez notre guide sur <a href=\"https:\/\/wikiform.fr\/codespace\/definir-et-utiliser-les-methodes-en-python\" target=\"_blank\" rel=\"noopener\">d\u00e9finir et utiliser les m\u00e9thodes en Python<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">H\u00e9ritage en Python<\/h3>\n\n\n\n<p>L&rsquo;h\u00e9ritage permet de cr\u00e9er une nouvelle classe qui h\u00e9rite des attributs et m\u00e9thodes d&rsquo;une classe existante. Cela facilite la r\u00e9utilisation de code et le maintien de relations logiques entre les classes. Voici un exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>class Animal:\n    def __init__(self, nom):\n        self.nom = nom\n\n    def faire_son(self):\n        pass\n\nclass Chien(Animal):\n    def faire_son(self):\n        print(f\"{self.nom} aboie.\")\n\nclass Chat(Animal):\n    def faire_son(self):\n        print(f\"{self.nom} miaule.\")\n\n# Cr\u00e9ation d'instances des classes Chien et Chat\nmilou = Chien(\"Milou\")\nfelix = Chat(\"F\u00e9lix\")\nmilou.faire_son()\nfelix.faire_son()\n<\/code><\/pre>\n\n\n\n<p>Si vous souhaitez approfondir votre compr\u00e9hension de l&rsquo;h\u00e9ritage en Python, consultez notre <a href=\"https:\/\/wikiform.fr\/codespace\/concepts-et-utilisation-de-l-heritage-en-python\" target=\"_blank\" rel=\"noopener\">guide sur l&rsquo;h\u00e9ritage en Python<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Les M\u00e9thodes Sp\u00e9ciales<\/h3>\n\n\n\n<p>Les m\u00e9thodes sp\u00e9ciales, \u00e9galement connues sous le nom de m\u00e9thodes magiques, sont des m\u00e9thodes pr\u00e9d\u00e9finies par Python qui permettent de surcharger certaines op\u00e9rations ou comportements des objets. Par exemple, <code>__str__<\/code> permet de d\u00e9finir le comportement de <code>str()<\/code> sur un objet :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>class Livre:\n    def __init__(self, titre, auteur):\n        self.titre = titre\n        self.auteur = auteur\n\n    def __str__(self):\n        return f\"Livre: {self.titre}, Auteur: {self.auteur}\"\n\n# Cr\u00e9ation d'une instance de la classe Livre\nmon_livre = Livre(\"1984\", \"George Orwell\")\nprint(mon_livre)\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Encapsulation et Propri\u00e9t\u00e9s<\/h3>\n\n\n\n<p>L&rsquo;encapsulation est un concept de programmation orient\u00e9e objet qui limite l&rsquo;acc\u00e8s direct aux donn\u00e9es dans une classe. Vous pouvez contr\u00f4ler cet acc\u00e8s en utilisant des propri\u00e9t\u00e9s :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>class CompteBancaire:\n    def __init__(self, solde_initial):\n        self._solde = solde_initial\n\n    @property\n    def solde(self):\n        return self._solde\n\n    @solde.setter\n    def solde(self, nouvelle_valeur):\n        if nouvelle_valeur >= 0:\n            self._solde = nouvelle_valeur\n        else:\n            print(\"Le solde ne peut pas \u00eatre n\u00e9gatif.\")\n\n# Cr\u00e9ation d'une instance de la classe CompteBancaire\nmon_compte = CompteBancaire(100)\nprint(mon_compte.solde)\nmon_compte.solde = 200\nprint(mon_compte.solde)\nmon_compte.solde = -50\n<\/code><\/pre>\n\n\n\n<p>Comprendre l&rsquo;encapsulation est essentiel pour une bonne ma\u00eetrise des Classes Python. Vous pouvez lire notre <a href=\"https:\/\/wikiform.fr\/codespace\/proprietes-en-python-gestion-et-utilisation\" target=\"_blank\" rel=\"noopener\">guide sur les propri\u00e9t\u00e9s en Python<\/a> pour plus de d\u00e9tails.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Cr\u00e9er et utiliser des classes en Python est fondamental pour \u00e9crire un code modulaire et facilement maintenable. Les concepts discut\u00e9s, tels que la cr\u00e9ation de classes, les attributs et m\u00e9thodes, l&rsquo;h\u00e9ritage, les m\u00e9thodes sp\u00e9ciales et l&rsquo;encapsulation, sont des piliers de la programmation orient\u00e9e objet. En pratiquant ces techniques, vous deviendrez un d\u00e9veloppeur Python plus efficace et comp\u00e9tent. Pour approfondir vos connaissances, lisez notre <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" rel=\"noopener\">cours complet sur le d\u00e9veloppement Python<\/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<p>Nous vous recommandons aussi de consulter les guides suivants pour affiner vos comp\u00e9tences en Python :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/wikiform.fr\/codespace\/installation-de-virtualenv-pour-python-guide\" target=\"_blank\" rel=\"noopener\">Installation de Virtualenv pour Python<\/a><\/li>\n<li><a href=\"https:\/\/wikiform.fr\/codespace\/structures-de-donnees-listes-en-python\" target=\"_blank\" rel=\"noopener\">Structures de Donn\u00e9es : Listes en Python<\/a><\/li>\n<li><a href=\"https:\/\/wikiform.fr\/codespace\/gerer-erreurs-et-exceptions-en-python\" target=\"_blank\" rel=\"noopener\">G\u00e9rer les Erreurs et Exceptions en Python<\/a><\/li>\n<li><a href=\"https:\/\/wikiform.fr\/codespace\/utilisation-des-docstrings-en-python-guide\" target=\"_blank\" rel=\"noopener\">Utilisation des Docstrings en Python<\/a><\/li>\n<li><a href=\"https:\/\/wikiform.fr\/codespace\/introduction-a-tkinter-pour-interfaces-graphiques\" target=\"_blank\" rel=\"noopener\">Introduction \u00e0 Tkinter pour Interfaces Graphiques<\/a><\/li>\n<\/ul>\n\n\n\n<p>Pour des ressources suppl\u00e9mentaires, voici quelques liens externes utiles\u00a0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.python.org\/3\/tutorial\/classes.html\" target=\"_blank\" rel=\"dofollow noopener\">Documentation officielle des classes en Python<\/a><\/li>\n<li><a href=\"https:\/\/realpython.com\/python3-object-oriented-programming\/\" target=\"_blank\" rel=\"dofollow noopener\">Introduction to Object-Oriented Programming in Python<\/a><\/li>\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/python-oops-concepts\/\" target=\"_blank\" rel=\"dofollow noopener\">Python OOP Concepts<\/a><\/li>\n<\/ul>\n\n\u00ab\u00a0`","protected":false},"excerpt":{"rendered":"<p>\u00ab\u00a0`html Cr\u00e9ation et Utilisation des Classes en Python est une comp\u00e9tence essentielle pour tout d\u00e9veloppeur Python. Apprendre \u00e0 ma\u00eetriser les classes et les objets en&#8230;<\/p>\n","protected":false},"author":4,"featured_media":2906,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[18],"class_list":["post-5777","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\/5777","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=5777"}],"version-history":[{"count":1,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5777\/revisions"}],"predecessor-version":[{"id":5778,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5777\/revisions\/5778"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media\/2906"}],"wp:attachment":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media?parent=5777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/categories?post=5777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/tags?post=5777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}