Classes et objets Python [avec exemples]

Publié: 2021-06-25

La POO - abréviation de programmation orientée objet - est un paradigme qui s'appuie sur des objets et des classes pour créer des programmes fonctionnels. Les POO travaillent sur la modularité du code, et les classes et les objets aident à écrire des morceaux de code simples et réutilisables qui peuvent être utilisés pour créer des fonctionnalités et des modules logiciels plus importants. C++, Java et Python sont les trois langages de programmation orientés objet les plus couramment utilisés. Cependant, en ce qui concerne les cas d'utilisation d'aujourd'hui - comme la science des données et l'analyse statistique - Python l'emporte sur les deux autres.

Ce n'est pas une surprise car les Data Scientists du monde entier ne jurent que par les capacités du langage de programmation Python. Si vous envisagez de démarrer une carrière en science des données et que vous cherchez à maîtriser Python, la connaissance des classes et des objets devrait être votre première priorité.

À travers cet article, nous vous aiderons à comprendre toutes les nuances derrière les objets et les classes en Python, ainsi que la façon dont vous pouvez commencer à créer vos propres classes et à travailler avec elles.

Table des matières

Cours en Python

Une classe en Python est un prototype défini par l'utilisateur à l'aide duquel les objets sont créés. En termes simples, une classe est une méthode permettant de regrouper des données et des fonctionnalités . Les deux mots clés sont importants à noter. Les données désignent toutes les variables instanciées ou définies, tandis que la fonctionnalité désigne toute opération pouvant être effectuée sur ces données. Avec les données et les fonctionnalités regroupées dans un seul package, nous obtenons des classes.

Pour comprendre la nécessité de créer une classe, considérons l'exemple simple suivant. Supposons que vous souhaitiez suivre les chats de votre quartier ayant différentes caractéristiques telles que l'âge, la race, la couleur, le poids, etc. Vous pouvez utiliser une liste et suivre les éléments de manière 1:1, c'est-à-dire que vous pouvez suivre la race jusqu'au l'âge, ou l'âge au poids à l'aide d'une liste. Et s'il devait y avoir 100 chats différents ? Et s'il y a plus de propriétés à ajouter ? Dans un tel scénario, l'utilisation de listes a tendance à être désorganisée et désordonnée.

C'est précisément là que les cours entrent en jeu !

Les classes vous aident à créer une structure de données définie par l'utilisateur qui a ses propres membres de données (variables) et fonctions membres. Vous pouvez accéder à ces variables et méthodes simplement en créant un objet pour la classe (nous en reparlerons plus tard). Ainsi, dans un sens, les classes sont comme un plan pour un objet.

De plus, la création de classes crée automatiquement un nouveau type d'objets, ce qui vous permet de créer davantage d'objets de ce même type. Chaque instance de classe peut avoir des attributs qui lui sont attachés afin de maintenir son état. Les instances de classe peuvent elles-mêmes avoir des méthodes (telles que définies par leur classe) pour modifier l'état.

Quelques points sur la classe Python :

  • Les classes sont créées à l'aide du mot-clé class.
  • Les attributs sont les variables spécifiques à la classe que vous avez créée.
  • Ces attributs sont toujours de nature publique et sont accessibles en utilisant l'opérateur point après le nom de la classe. Par exemple, ClassName.AttributeName vous récupérera le détail d'attribut particulier de cette classe particulière.

Syntaxe pour définir une classe :

classe NomClasse :

# Déclaration-1

.

.

.

# Déclaration-N

Par exemple:

chat de classe :

passe

Dans l'exemple ci-dessus, le mot-clé class indique que vous créez une classe suivi du nom de la classe (Cat dans ce cas). Le rôle de cette classe n'a pas encore été défini.

Avantages de l'utilisation des classes en Python

  • Les classes vous aident à conserver tous les différents types de données correctement organisés en un seul endroit. De cette façon, vous gardez le code propre et modulaire, améliorant ainsi la lisibilité de votre code.
  • L'utilisation de classes vous permet de profiter d'un autre paradigme POO - appelé Héritage. C'est lorsqu'une classe hérite des propriétés d'une autre classe.
  • Les classes vous permettent de remplacer tous les opérateurs standard.
  • Les classes rendent votre code réutilisable, ce qui rend votre programme beaucoup plus efficace.

Objets en Python

Un objet est simplement une instance de n'importe quelle classe que vous avez définie. Au moment où vous créez une classe, une instance automatique est déjà créée. Ainsi, comme dans l'exemple, la classe Cat instancie automatiquement un objet comme un vrai chat - de race persane et âgé de 3 ans. Vous pouvez avoir de nombreuses instances différentes de chats ayant des propriétés différentes, mais pour que cela ait un sens, vous aurez besoin d'une classe comme guide. Sinon, vous finirez par vous sentir perdu, ne sachant pas quelles informations sont nécessaires.

Un objet est généralement caractérisé par trois choses :

  • État : il s'agit des divers attributs de tout objet et des diverses propriétés qu'il peut afficher.
  • Comportement : cela indique essentiellement les méthodes de cet objet. Il reflète également la façon dont cet objet particulier interagit avec ou répond à d'autres objets.
  • Identité : l'identité est le nom unique de l'objet à l'aide duquel il peut être invoqué en cas de besoin.

1. Déclarer des objets

La déclaration d'objets est également connue sous le nom d'instanciation d'une classe car dès que vous définissez une classe, un objet par défaut est créé en lui-même (comme nous l'avons vu précédemment) - qui est l'instance de cette classe. De même, chaque fois que vous créez un objet, vous créez essentiellement une nouvelle instance de votre classe.

En ce qui concerne les trois choses (état, comportement, identité) que nous avons mentionnées précédemment, toutes les instances (objets) partagent un comportement et un état, mais leurs identités sont différentes. Une seule classe peut avoir n'importe quel nombre d'objets, selon les besoins du programmeur.

Consultez l'exemple ci-dessous. Voici un programme qui explique comment instancier des classes.

chat de classe :

# Une classe simple

# attribut

attr1 = "félin"

attr2 = "chat"

# Un exemple de méthode

def fun(self):

print("Je suis un", self.attr1)

print("Je suis un", self.attr2)

#Code conducteur

# Instanciation d'objet

Tom = chat()

# Accéder aux attributs de classe

# et méthode à travers des objets

print(Tom.attr1)

Tom.fun();

La sortie de ce programme simple sera la suivante :

Félin

je suis un félin

je suis un chat

Comme vous pouvez le voir, nous avons d'abord créé une classe appelée cat, puis instancié un objet nommé "Tom". Les trois sorties que nous avons obtenues étaient les suivantes :

  • Feline - c'était le résultat de la déclaration print(Tom.attr1). Étant donné que Tom est un objet de la classe Cat et que attr1 a été défini sur Feline, cette fonction renvoie la sortie Feline.
  • Je suis un félin – Tom.fun(); utilise l'objet appelé Tom pour invoquer une fonction dans la classe cat, connue sous le nom de 'fun'. L'objet Tom apporte avec lui les attributs de la fonction, et donc la fonction produit les deux phrases suivantes - "Je suis un félin".
  • Je suis un chat - même raison que celle indiquée ci-dessus.

Maintenant que vous avez compris le fonctionnement des classes et des objets en Python, examinons quelques méthodes essentielles.

2. La méthode de soi

Toutes les méthodes définies dans n'importe quelle classe doivent avoir un premier paramètre supplémentaire dans la définition de la fonction. Ce paramètre n'est affecté à aucune valeur par le programmeur. Cependant, lorsque la méthode est appelée, Python lui fournit une valeur.

Par conséquent, si vous définissez une fonction sans argument, elle a toujours techniquement un argument. C'est ce qu'on appelle 'self' en Python. Pour mieux comprendre cela, vous pouvez réviser vos concepts de pointeurs en C++ ou les référencer en Java. L'auto-méthode fonctionne essentiellement de la même manière.

Pour mieux comprendre cela - lorsque nous appelons une méthode d'un objet, par exemple :

myObject.myMethod(arg1, arg2), Python le convertit automatiquement en myClass.myMethod(myObject, arg1, arg2).

Vous voyez donc que l'objet lui-même devient le premier argument de la méthode. C'est de cela qu'il s'agit en Python.

3. La méthode __init__

Cette méthode est similaire aux constructeurs en Java ou C++. Comme les constructeurs, la méthode init est utilisée pour initialiser l'état d'un objet. Celui-ci contient une collection d'instructions (instructions) qui sont exécutées au moment de la création de l'objet. Lorsqu'un objet est instancié pour une classe, la méthode init exécutera automatiquement les méthodes initialisées par vous.

Voici un morceau de code pour mieux expliquer cela:

# Une classe d'exemple avec la méthode init

Personne de classe :

# méthode d'initialisation ou constructeur

def __init__(soi, nom):

soi.nom = nom

# Exemple de méthode

def say_hi(self):

print('Bonjour, je m'appelle', self.name)

p = Personne ("Sam")

p.say_hi()

Sortir:

Bonjour mon nom est Sam

Apprenez des cours d'analyse de données en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Variables de classe et d'instance

Les variables d'instance sont uniques à chaque instance, tandis que les variables de classe concernent les méthodes et les attributs partagés par toutes les instances d'une classe. Par conséquent, les variables d'instance sont essentiellement des variables dont la valeur est affectée à l'intérieur d'un constructeur ou d'une méthode avec self. D'autre part, les variables de classe sont celles dont les valeurs sont affectées au sein d'une classe.

Parcourez le code suivant pour comprendre comment les variables d'instance sont définies à l'aide d'un constructeur (méthode init) :

chat de classe :

# Variable de classe

animal = 'chat'

# La méthode init ou le constructeur

def __init__(soi, race, couleur):

# Variable d'instance

self.breed = race

self.color = couleur

# Objets de la classe Dog

Tom = chat ("persan", "noir")

Milou = chat ("Indie", "blanc")

print("Détails de Tom :')

print('Tom est un', Tom.animal)

print('Race : ', Tom.race)

print('Color: ', Tom.color)

print('\nDétails enneigés :')

print("Mineige est un', Milou.animal)

print('Race : ', Milou.race)

print('Color: ', Snowy.color)

Si vous suivez le code ci-dessus ligne par ligne, voici le résultat que vous recevrez :

Sortir:

Détails Tom :

Tom est un chat

Race : persan

La couleur noire

Détails enneigés :

Milou est un chat

Race : Indie

Couleur blanche

En conclusion

Python est un langage de programmation relativement simple, en particulier pour les débutants. Une fois que vous en aurez maîtrisé les bases, vous serez prêt à travailler avec diverses bibliothèques Python et à résoudre des problèmes spécifiques aux données. Cependant, rappelez-vous que si le voyage commence par la compréhension des classes et des objets, vous devez également apprendre à travailler avec différents objets, classes et leurs nuances.

Nous espérons que cet article vous a aidé à clarifier vos doutes sur les classes et les objets en Python. Si vous avez des questions, n'hésitez pas à nous laisser un commentaire ci-dessous - nous vous répondrons très bientôt !

Si vous êtes à la recherche d'un changement de carrière et que vous recherchez une aide professionnelle, upGrad est là pour vous. Découvrez notre programme Executive PG en science des données offert en collaboration avec l'IIIT-B . Familiarisez-vous avec plus de 14 langages et outils de programmation (y compris Python) tout en accédant à plus de 30 projets pertinents pour l'industrie. Les étudiants de n'importe quel volet peuvent s'inscrire à ce programme, à condition qu'ils aient obtenu un minimum de 50 % au baccalauréat.

Nous avons une solide base d'apprenants dans plus de 85 pays, plus de 40 000 apprenants rémunérés dans le monde et plus de 500 000 professionnels heureux. Notre assistance professionnelle à 360 degrés, combinée à l'exposition des études et du brainstorming avec des étudiants du monde entier, vous permet de tirer le meilleur parti de votre expérience d'apprentissage.

Que sont les classes et les objets en Python ?

Une classe est un modèle ou un plan qui lie les propriétés et les fonctions d'une entité. En Python, le mot clé class est utilisé pour définir une classe. Toutes les entités ou objets ayant des attributs similaires peuvent être mis sous une seule classe et sont accessibles par les fonctions membres.
Un objet est une instance d'une classe. Une fois qu'une classe est créée, les objets obtiennent toutes les informations de cette classe. C'est comme une copie de la classe respectée avec les valeurs réelles. Un objet est classé selon trois facteurs :
une. État
b. Comportement
c. Identité

Quel paradigme de programmation Python suit-il ?

Il existe quatre principaux paradigmes distincts suivis par Python - orienté objet, procédural, fonctionnel et impératif. Python prend fortement en charge les concepts orientés objet ; cependant, ce n'est pas un langage de programmation purement orienté objet.
La raison de la prise en charge de divers paradigmes de programmation est qu'elle est sensiblement influencée par certains scripts comme CoffeeScript et des langages de programmation orientés objet comme Ruby. Il se combine également avec des langages comme R pour augmenter l'efficacité et la puissance de calcul.
Étant un langage multi-paradigme, Python est considéré comme l'un des langages les plus polyvalents. Il est largement utilisé pour le développement, l'analyse de données, le grattage Web et l'automatisation.

Que sont les modificateurs d'accès en Python ?

Semblable à d'autres langages de programmation orientés objet, une classe en Python possède également trois modificateurs d'accès :
une. Modificateur d'accès public : les membres de la classe spécifiés comme public peuvent être directement accessibles par n'importe quelle fonction, c'est-à-dire par les fonctions membres ainsi que par les fonctions non membres. Si aucun spécificateur d'accès n'est spécifié, tous les membres de la classe sont considérés par défaut comme des membres publics par le compilateur.
b. Modificateur d'accès privé : ces membres de la classe sont masqués pour les autres membres de la classe. Elles ne sont accessibles que par les fonctions membres de la classe dans laquelle elles sont définies.
c. Modificateur d'accès protégé : les membres de la classe spécifiés comme protégés ne sont accessibles que par les fonctions membres de la même classe et généreront une erreur en cas de tentative d'accès en dehors de la classe. La seule différence majeure entre le spécificateur d'accès privé et protégé est que les membres protégés peuvent être hérités tandis que les membres privés ne peuvent pas être hérités.