Les classes Python sont utilisées en programmation orientée objet (POO), pour favoriser la concision, la clarté et la modularité du code. Une classe Python est un bloc de code qui définit un type d'objet. Chaque type d'objet a des caractéristiques et des comportements déterminés : des variables et des fonctions. Tous les objets d'une classe disposent de ces variables et de ces fonctions, ce sont ses attributs. Pour illustrer avec un exemple du monde réel : les membres d'un club de sport sont abonnés ou invités, ils peuvent faire du sport ; c'est une classe Membre, avec une variable catégorie de membre et une fonction faire du sport.

Téléchargement  >> Le guide et le modèle pour maîtriser les regex

Pour bien commencer avec les classes Python, il faut savoir comment manipuler les variables et les fonctions, et comprendre les piliers de la programmation orientée objet : encapsulation, héritage et polymorphisme.

Pour se représenter une classe Python, il faut dessiner une boîte : l'en-tête porte le nom de la classe, une ligne décrit ses variables et une autre ligne décrit ses fonctions. Chaque objet qui possède vraisemblablement les attributs de la classe peut entrer dans la boîte. Dans cet exemple, la classe Animal permet de créer un chat, un chien et un lapin : on dit que le chat, le chien et le lapin sont des instances de la classe, c'est-à-dire qu'ils appartiennent au même type d'objet. Le poisson rouge, qui ne marche pas, ne peut pas, a priori, appartenir à cette classe.

   Animal
 Variables

 domestique

 poils

 Fonctions

 marche

 saute

Pour aller plus loin dans l'utilisation des classes Python en POO, il faut s'intéresser au principe d'héritage. À partir d'une classe « mère », il est possible de créer des classes « enfants ». Un objet d'une classe enfant dispose alors des attributs de sa classe enfant et des attributs de la classe mère. Dans l'exemple, deux classes enfants permettent de distinguer les chats et les chiens, une classe enfant de la classe chien crée un objet de type chien guide d'aveugle. Sans qu'il soit besoin de le coder, l'objet chien guide d'aveugle est un animal domestique à poils, qui peut avoir une race et un âge, et qui est capable de marcher, de sauter et d'aboyer.

  Chien  Chat 
 Variables

 race

 âge

 race

âge

 Fonctions  aboie  miaule
  Chien guide d'aveugle 
 Variables  Taille
 Fonctions  Guide d'aveugle

 

Pourquoi utiliser des classes en Python ?

Les classes sont utilisées en Python pour faire de la programmation orientée objet. Le principal intérêt des classes est de faciliter le travail du développeur, en clarifiant l'organisation du code. Le développeur peut en effet travailler isolément sur chaque classe, c'est-à-dire sur chaque type d'objet, sans risque de confusion. C'est le principe d'encapsulation, un pilier de la POO.

Illustration : les collaborateurs d'une entreprise ont chacun un nom. Créer une classe par métier dans l'entreprise permet d'utiliser la variable nom plusieurs fois, tout en faisant référence au métier spécifique du collaborateur. Chaque métier est un type d'objet distinct, qui peut être manipulé distinctement.

L'intérêt de l'encapsulation n'est pas évident de prime abord. Il se manifeste à mesure que le code Python se densifie et se complexifie.

 

Comment créer une classe en Python ?

Pour créer une classe en Python, il faut nommer la classe, puis renseigner les attributs du type d'objet : des variables et des fonctions. La syntaxe pour écrire une classe en Python est la suivante :

class Nomdeclasse

variable = valeur

def nomdeFonction(paramètres de la fonction) : description de la fonction

  • Le terme « class » introduit une nouvelle classe Python.
  • La classe a une variable notée « variable », qui prend une valeur.
  • Pour attribuer un comportement aux objets de la classe, il faut définir une fonction avec « def ».

Utiliser une méthode Python appelée « init », et une fonction vide avec l'instruction « pass », permet d'avoir un code plus concis, plus clair et modulaire. En programmation orientée objet, ces pratiques sont mises en œuvre conformément au principe de polymorphisme.

 

1 - La méthode __init__

La méthode __init__ sert à attribuer à chaque objet de la classe une valeur d'attribut qui lui est propre. Dans l'exemple des collaborateurs d'une entreprise, chaque classe qui définit un métier utilise la variable nom. Tous les collaborateurs d'un même métier doivent appartenir à la classe, or chacun a un nom différent. Avec __init__, il est possible de créer une variable nom qui s'initialise pour chaque collaborateur.

Exemple de syntaxe Python avec la méthode __init__ :

class Commerciaux

def __init__(self, nom)

self.commercial_nom=nom

Ainsi, chaque instance de la classe Commerciaux, c'est-à-dire chaque nouveau commercial, peut avoir son propre nom.

 

2 - La fonction vide

Écrire une fonction vide dans une classe Python sert l'enjeu de polymorphisme de la POO. Avec une fonction vide dans une classe mère, une classe fille peut définir sa propre fonction : la classe fille hérite d'une fonction générique, qu'elle implémente en définissant un comportement spécifique.

Exemple de syntaxe Python avec une fonction vide :

class Animaux

def moyenCommunication(self) :

pass

L'instruction « pass » indique que la fonction ne produit aucun effet, le paramètre self indique que la fonction fait référence à la classe. Au moment de créer une classe fille de la classe Animaux, la classe Chien par exemple, il est alors possible d'écrire la valeur aboyer pour la fonction moyenCommunication.

 

gagnez du temps dans la gestion de votre code et de vos données.

téléchargez ce guide pour effectuer des vérifications et des changements en masse avec les regex et gagner en productivité.

 

Comment exécuter une classe Python ? 3 exemples

Une classe Python permet de raccourcir le code, de le clarifier et de le moduler. Au-delà de ces aspects liés à la POO, une classe Python est fonctionnelle. C'est-à-dire qu'elle permet de faire des choses quand elle est exécutée. Et chaque fois qu'une nouvelle instance de classe est créée, elle s'exécute de même.

 

Afficher le résultat d'une somme

Le langage Python peut automatiser des calculs mathématiques : faire la somme de deux nombres, par exemple. Le développeur crée une classe Calcul avec deux variables de nombres et une fonction d'addition. L'utilisateur entre deux nombres et obtient leur somme. Le code pour exécuter ce calcul peut s'écrire ainsi :

class Calcul:

def __init__(self,a,b):

self.nombre1, self.nombre2 = a , b

def somme(self):

return (self.nombre1 + self.nombre2)

exemple = Calcul(3,8)

print( "Le résultat est :" , exemple.somme() )

exemple d'exécution de classe Python pour une addition

 

Calculer des aires et des périmètres

Le développeur crée une classe Rectangle, qui a des variables de largeur et de longueur et des fonctions de calcul de périmètre et d'aire. Quand un utilisateur entre les mesures d'un rectangle, cela crée une nouvelle instance de la classe et le périmètre et l'aire sont calculés automatiquement. Le code pour exécuter cette classe ressemble à cela :

class Rectangle:

def __init__(self,a,b):

self.longueur, self.largeur = a , b

def perimetre(self):

return 2 * (self.longueur + self.largeur)

def aire(self):

return self.longueur * self.largeur

 

fig = Rectangle(1,2)

 

print( "Le périmétre est :" , fig.perimetre() )

print( "L'aire est :" , fig.aire() )

exemple d'exécution d'une classe Python pour calculer l'aire et le périmètre

 

Déterminer si un rectangle est carré

La structure conditionnelle if…else de Python, utilisée dans la classe précédente, permet de dire si le rectangle est ou non un carré. Le code ressemble à cela :

class Rectangle:

def __init__(self,a,b):

self.longueur, self.largeur = a , b

def is_square(self):

return self.longueur == self.largeur

 

fig = Rectangle(1,2)

 

if fig.is_square():

print( "C'est un carré" )

else:

print("Ce n'est pas un carré")

exemple d'exécution de classe Python avec boucle conditionnelle

 

Pour aller plus loin, découvrez comment effectuer des vérifications et des changements en masse dans votre code ou vos données en téléchargeant le guide sur les regex ; ou découvrez le CMS de HubSpot.

Nouveau call-to-action

Publication originale le 9 août 2023, mise à jour le 09 août 2023

Sujet(s):

Python