Un guide complet sur les concepts OOP en Python

Publié: 2020-10-22

La programmation orientée objet ou POO fait partie intégrante du monde du logiciel depuis un certain temps maintenant. C'est un excellent paradigme de programmation qui offre un certain niveau de liberté et améliore les réalisations de programmation pour le développeur.

Il existe certains concepts et principes de base que chaque développeur doit connaître. Ils sont à la base du développement d'une application utilisant ce modèle.

Ici, nous allons jeter un œil à certains des concepts de POO cruciaux mais basiques en Python . Ces concepts poussent les programmeurs à obtenir de meilleurs résultats ainsi qu'à modéliser leurs applications de manière enrichissante.

Table des matières

Qu'est-ce que la programmation orientée objet ?

Pour les non-initiés, c'est ici que nous allons commencer notre initiation. Comprenons les POO comme le ferait un profane, pour mieux comprendre comment nous pouvons les résoudre.

Dans cette structure de programmation, vous pouvez facilement combiner des éléments ayant des propriétés ou des comportements similaires en un seul objet. Si vous parlez de démographie, cela devient un objet unique pour ce modèle de programmation. De même, si vous parlez d'actions à entreprendre, alors cela devient un autre objet.

Ce sont tous des objets qui contiennent des données brutes. Votre solution logicielle programmera ces objets de manière à ce qu'ils remplissent ensemble l'objectif final. Ces objets effectueront quelques actions ensemble, selon votre programmation, et fourniront le résultat.

Un excellent exemple pour aider à comprendre cela serait un programme de messagerie.

Supposons que vous disposiez d'un objet contenant le contenu de l'e-mail, tel que le nom du destinataire et l'objet. Il y a un deuxième objet qui détaille la pièce jointe et l'envoi de l'email. Vous concevrez un programme qui combinera automatiquement ces objets, vous assurera qu'un e-mail entièrement écrit est prêt avec les pièces jointes souhaitées et l'enverra au destinataire.

C'est ainsi que fonctionne la POO. Cependant, certains concepts conduisent cela à l'action. Examinons rapidement ces concepts et leur fonctionnement.

Lire : Python est-il un langage orienté objet ?

Comment définir une classe ?

La classe est ce qui définit chaque objet et constitue un aspect important des concepts de POO en Python . Disons que vous avez quatre objets, tels que les yeux, les oreilles, la bouche et le nez. Ce sont des parties d'un visage, qui est la classe.

Commençons par définir une classe.

Disons que vous parlez d'une classe appelée email.

E-mail de la classe :

passe

C'est ainsi que la classe est définie. Utilisez le "pass" pour que lorsque vous exécutez le code dans un compilateur, aucun bogue ne soit émis.

Seule la définition de la classe peut ne pas vous aider beaucoup. Vous devez ajouter quelques propriétés pour le rendre attrayant et le code utile. Vous devez donc ajouter des objets à votre classe.

La méthode ._init_() est ce qui s'avérerait utile lors de la définition des propriétés au sein d'une classe.

Cela garantira qu'à chaque fois que vous créerez un nouvel objet pour la classe, cette méthode définira les paramètres sur l'état initial, initialisant ainsi un nouvel objet à chaque fois.

Le premier paramètre de cette méthode serait toujours self, même si vous lui affectez plusieurs paramètres.

Alors, que se passe-t-il dans ce cas ? Disons que vous avez créé une nouvelle classe. L'instance est transférée au paramètre self. En conséquence, le ._init_() peut affecter de nouvelles propriétés à l'objet défini.

Si vous vous demandez encore comment l'utiliser, comprenons-le via un exemple.

E-mail de la classe :

def ._init_(soi, nom, destinataire, adresse) :

soi.nom = nom

self.recipient = destinataire

self.address = adresse

Décomposons ce code pour une meilleure compréhension.

L'indentation exprimée dans le code ci-dessus est critique. Vous devez faire correspondre la même chose lors de l'écriture de votre programme à l'aide de POO en Python . Comprenons la variable self dans le code ci-dessus.

Le self.name produit un attribut appelé name. La valeur du paramètre name est affectée à cet attribut. De même, des attributs et des valeurs sont également attribués aux variables de l'autre soi.

Ces attributs sont appelés instance. Vous devrez spécifier la valeur de chaque attribut mentionné dans une instance particulière. Disons qu'il existe deux types d'e-mails - bienvenue et nurture. Le destinataire de l'e-mail serait différent pour les deux instances (e-mails de bienvenue et e-mails de développement).

Les attributs de classe, en revanche, sont différents ; ils contiendront la même valeur pour toutes les instances de classe. Par exemple, ce sont tous des e-mails entrants. C'est l'attribut de classe que vous pouvez définir pour eux.

E-mail de la classe :

#Attribut de classe

E-mail : "E-mails entrants"

def ._init_(soi, nom, destinataire, adresse) :

soi.nom = nom

self.recipient = destinataire

self.address = adresse

Apprenez-en plus à propos de : Comment coder, compiler et exécuter des projets Java

Présentation des variables de classe et d'instance

Prenons l'exemple ci-dessus où nous avons créé un attribut de classe ainsi que deux variables d'instance pour mieux comprendre les POO en Python .

E-mail de la classe :

E-mail : "E-mails entrants"

def ._init_(soi, nom, destinataire, adresse) :

soi.nom = nom

self.recipient = destinataire

self.address = adresse

Parlons de l'instanciation des objets dans cette classe. Vous devez définir des valeurs pour chacun de ces objets. Ce sera la valeur initiale de chaque objet, comme indiqué dans la partie précédente du guide. Si vous n'attribuez pas de valeurs à ces objets, vous recevrez une TypeError.

>>> E-mail()

Traceback (dernier appel le plus récent) :

Fichier "<pyshell#6>", ligne 1, dans <module>

E-mail ()

TypeError : __init__() manque 4 arguments positionnels : 'nom', 'destinataire' et 'adresse'

Nous pouvons ajouter de la valeur immédiatement après le nom de la classe.

E-mail nourricier = E-mail (Nourrir, David, [email protected])

E-mail de bienvenue = E-mail (Bienvenue, Daisy, [email protected])

Avec le code ci-dessus, nous avons généré deux instances, pour un e-mail nourricier et un e-mail de bienvenue. Vérifions le __init__() défini après l'instance de classe pour le code ci-dessus. Nous voyons quatre paramètres, dont le soi. Cependant, aucune variable n'a été mentionnée pour soi. Comprenons pourquoi?

Ainsi, chaque fois que vous créez un nouvel objet dans une classe, vous instanciez la classe. Vous attribuerez une adresse mémoire en faisant cela, où la variable sera stockée. Dès que vous instanciez un nouvel objet, Python créera automatiquement une instance, et elle sera passée à la première variable de la méthode .__init__(). En conséquence, le soi est supprimé dans cette méthode.

Avec la variable de classe, vous pouvez vous assurer que chaque instance que vous avez créée est associée à une variable ou à une valeur. Cela garantira des résultats plus rapides et plus faciles, et donc des conclusions plus sûres pour votre programmation.

Lisez aussi: Doit lire 47 questions et réponses d'entrevue OOPS pour les débutants et les expérimentés

Résumé

Nous avons compris les différents aspects de la création d'une classe, d'un objet et d'une méthode à l'aide du modèle de programmation Python OOPs ici. En dehors de cela, nous avons également compris des concepts tels que les instances et l'instanciation, qui sont au cœur de la programmation OOP en Python. Ensuite, vous devrez comprendre les principes qui régissent ces instances et classes telles que l'héritage, le polymorphisme, l'abstraction et l'encapsulation. Ce sont des concepts OOP de base en Python qui pilotent votre application et ses résultats.

Pour aller plus loin dans l'entonnoir Python, vous devez avoir vos bases claires et enracinées. Alors, plongez dans les cours et comprenez comment cela fonctionne. Jouez un peu avec ces variables et comprenez leurs résultats avant de pouvoir configurer votre application.

Si vous êtes curieux d'apprendre la science des données pour être à l'avant-garde des avancées technologiques rapides, consultez le diplôme PG upGrad & IIIT-B en science des données et améliorez vos compétences pour l'avenir.

Pourquoi utilisons-nous les POO ?

La programmation orientée objet (POO) est un cadre de programmation qui repose sur le développement d'« objets » réutilisables avec leurs attributs et leur comportement sur lesquels on peut agir, manipuler et empaqueter. Python prend en charge à la fois la POO et d'autres frameworks. En Python, vous réalisez la POO en utilisant des classes. Python possède toutes les caractéristiques habituelles de la programmation orientée objet. Les développeurs utilisent la POO dans leurs applications Python car cela rend les codes plus réutilisables et facilite le travail avec des programmes plus volumineux. Parce qu'une classe ne peut être définie qu'une seule fois et utilisée plusieurs fois, les systèmes POO vous empêchent de dupliquer le code. En conséquence, la POO simplifie le suivi du concept "Ne vous répétez pas" (DRY).

Qu'est-ce qu'une classe ?

Une classe Python est similaire à un plan pour générer un nouvel objet. Un objet est tout ce que vous souhaitez modifier ou changer lors du codage. Lorsque nous instancions un objet de classe, ce qui se produit lorsque nous définissons une variable, un nouvel objet est créé à partir de rien. Les objets de classe peuvent être réutilisés autant de fois que nécessaire. Une classe est utilisée pour construire chaque élément. Considérez ceci comme le modèle d'un certain type d'élément. Les classes répertorient les attributs requis pour ce type d'objet, mais ne leur attribuent pas de valeur. Les classes spécifient également des méthodes partagées par tous les objets du même type.

Qu'est-ce qu'une variable d'instance ?

Une instance de classe possède des variables d'instance en Python. La valeur d'une variable d'instance peut changer en fonction de l'instance à laquelle elle est liée. Ceci est différent d'une variable de classe, qui ne peut avoir qu'une seule valeur qui lui est assignée. Les variables d'instance sont déclarées dans une méthode de classe. Lorsque nous déclarons une classe, nous pouvons affecter des valeurs aux variables d'instance. Lorsque nous déclarons la classe, nous fournissons les valeurs que nous souhaitons affecter en tant qu'arguments.