Bienvenue dans notre cours ‘Programmation orientée objet en Python’. Alors, dans cette partie de cours, on va découvrir les Attributs et Méthodes de classe (les membres partagés) en POO / python. 

Attributs de classe

Jusqu’à présent, les attributs déclarées étaient des attributs d’instance. C’est à dire que les attributs de chaque objet,  peuvent avoir des valeurs différentes ( numéro, nom, etc ).

Problème : Supposons que dans la classe Stagiaire, il soit nécessaire de disposer d’un compteur d’instance. La valeur du compteur serait le nombre d’instances crées.

Solution: Tous les langages de programmation orientés objets permettent de possible de créer des attributs de classe.

Définition: un attribut de classe est un attribut dont la valeur est la même pour toutes les instances d’une même classe. Pour déclarer un tel attribut, on le définit comme dans l’exemple suivant :

Exemple

class Point:
#attribut de classe publique
cmp=0
def __init__(self,x=None,y=None):
self.__x=x #attribut d'objet
self.__y=y #attribut d'objet
Point.cmp+=1
#get et set
def getX(self):
return self.__x
def getY(self):
return self.__y
def setX(self,x):
self.__x=x
def setY(self,y):
self.__y=y
def Afficher(self):#méthodes d'objet
return "(x:"+str(self.__x)+",y:"+str(self.__y)+")"
#programme de test :
print(Point.cmp)
p1=Point(15,0)
print(p1.Afficher())
print(Point.cmp)
p2=Point(15,0)
print(p2.Afficher())
print(Point.cmp)

La propriété de classe compteur, initialisée à 0 lors de sa déclaration, sera incrémentée de 1 dans le constructeur de la classe. Sa valeur sera le nombre d’instances valides à un instant donné.

Règle  : Un attribut de classe est accessible selon sa visibilité :privé, public,… De plus, on a pas besoin d’instancier un objet de la classe. En effet, l’attribut de classe est référencé par le nom de la classe

Méthodes de classe

Définition: Une méthode de classe ne doit pas être envoyée à une instance donnée de cette classe, mais plutôt à la classe elle-même.

Syntaxe : Une méthode de classe est déclarée par @staticmethod.

Exemple : 

on va utiliser un attribut de classe privé. Donc, on crée une méthode getCmp() qui sera une méthode statique (Méthode de classe ) : 

class Point:
#attribut de classe privé
__cmp=0
def __init__(self,x=None,y=None):
self.__x=x #attribut d'objet
self.__y=y #attribut d'objet
Point.__cmp+=1
@staticmethod
def getCmp(): #méthode de classe
return "Nombre des objets:",Point.__cmp
#get et set
def getX(self):
return self.__x
def getY(self):
return self.__y
def setX(self,x):
self.__x=x
def setY(self,y):
self.__y=y
def Afficher(self):#méthodes d'objet
return "(x:"+str(self.__x)+",y:"+str(self.__y)+")"
#programme de test :
print(Point.getCmp())
p1=Point(15,0)
print(p1.Afficher())
print(Point.getCmp())
p2=Point(15,0)
print(p2.Afficher())
print(Point.getCmp())

Et voilà, nous avons pu utilisé des Attributs et Méthodes de classe . C’est simple ! il suffit de comprendre le principe puis l’implémenter dans le langage python.

Vous pouvez suivre notre liste des vidéos sur la programmation orientée objet  sur notre chaine youtube 9raytifclick (Darija: arabe marocaine) : POO en Python

Aussi, si vous voulez commencer l’apprentissage d’un langage de programmation, voilà notre cours : Langage Python Niveau 1 qui sera très utile pour vous (il vous aide à pratiquer tous les éléments de base de la programmation ; vus dans notre cours d’algorithmique).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *