0% ont trouvé ce document utile (0 vote)
23 vues10 pages

Bases Des Objets Python

Transféré par

khalilscofield2024
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
23 vues10 pages

Bases Des Objets Python

Transféré par

khalilscofield2024
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 10

Bases des objets Python

I I- Notion d’objet

Un objet est une entité du monde réel . On


associe à un objet une représentation
informatique. On distingue 2 types d’objets : les
objets concrets qu’on peut toucher du doigt
(Personne, Livre, …) et les objets abstraits
(Compte bancaire, un Point, …). Un objet possède
les caractéristiques suivantes :
- Un ensemble de propriétés que l’on appelle des
attributs
- Un ensemble d’opérations que l’objet sait
réaliser ou que l ’on peut réaliser sur l’objet. Ces
opérations sont organisées en fonctions appelées
méthodes
- Un nom unique qui l’identifie dans un
programme

Exemples :
Un point posséde comme attributs une abscisse x
et une ordonnée y. On peut définir une méthode
translater(…) qui est une fonction qui permet de
déplacer un point quelconque .
Un compte bancaire peut posséder les attributs
suivants : un numéro, un libellé, un sens et un
solde. On peut définir les méthodes suivantes :
crediter(..), debiter(…), transferer(…) sur des
comptes bancaires .

II-Cycle de vie d’un objet

- Un objet doit d’abord être créé : créer un objet


consiste à définir les valeurs initiales de ses
attributs. Par exemple un point P1 est créé si on
fournit les valeurs de ses coordonnées x et y. Un
compte C1 est créé lorsqu’on fixe les valeurs du
numéro , du sens , du libellé et du solde.
- Après la création de l’objet , on fait appel aux
méthodes qui permettent d’exploiter l’objet. Par
exemple, on peut créditer ou débiter le compte
C1 ou translater le Point P1.
- Destruction de l’objet automatique à la fin de
l’application via l’outil logiciel ramasse-miettes
(garbage collector).
III-Notion de Classe

Les objets qui possèdent les mêmes attributs et


auxquels on peut appliquer les mêmes
opérations(méthodes) sont regroupés dans une
famille appelée Classe.
Tous les langages de programmations possèdent
des types prédéfinis : int ,float, etc…
Lorsque l’utilisateur crée une classe, il crée alors
un nouveau type qui étend donc les types
existants. Il lui faut alors définir des variables de
ce type appelées instances d’objets.
Ainsi, on a les correspondances suivantes :
Programmation structurée Programmation
objet
Types Classes
Variables instances
d’objets
Fonctions Méthodes
Une classe est une structure de programmation
définie pour des objets issus d’une même famille
et dans laquelle on décrit :
- Leurs attributs communs
- Leurs méthodes communes
IV- Notion d’encapsulation

Un objet doit être protégé lors qu’on y accède.


Pour pouvoir accéder aux valeurs des attributs en
dehors de la classe où ils sont définis , on doit
utiliser des méthodes. Ainsi pour accéder à la
valeur d’un attribut en dehors de sa classe de
définition, on utilise une méthode appelée
accesseur ou getter. Pour fixer ou modifier la
valeur d’un attribut en dehors de sa classe de
définition, on utilise une méthode appelée
modificateur ou setter.

V-Notion de constructeur
Avant de pouvoir faire appel à un getter, un
setter ou autre méthode, on doit d’abord créer
l’objet.
Créer un objet consiste à fixer les valeurs initiales
de ses attributs.
Cette opération se fait via une méthode
spécifique de la classe appelée un constructeur.
L’utilisateur doit spécifier au moins un ou
plusieurs constructeurs.
S’il n’en définit pas, le système propose un
constructeur par défaut qui crée des objets vides
c.a.d. des objets sans valeurs initiales des
attributs. Il faudra alors dans ce cas faire appel
aux setters pour fixer les valeurs initiales des
attributs de l’objet.
L’utilisateur doit éviter le constructeur par défaut
et proposer son propre constructeur.
Le constucteur est une méthode appelée
__init__()

Exemple 1 : une classe Point2D


class Point2D:
def __init__(self,x,y):
self.__x=x
self.__y=y
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 translater(self,dx,dy):
self.__x=self.__x+dx
self.__y=self.__y+dy

def main():
# création d'un point p1
p1=Point2D(3,4)
# création d'un point p2
p2=Point2D(1,2)
# affichage de p1 et p2
print("abscisse de p1: ",p1.getX())
print("ordonnée de p1: ",p1.getY())
print("abscisse de p2: ",p2.getX())
print("ordonnée de p2: ",p2.getY())
# modification des coordonnées de p1
p1.setX(-1)
p1.setY(-1)
print("nouvelle abscisse de p1: ",p1.getX())
print("nouvelle ordonnée de p1: ",p1.getY())
# translater p2
p2.translater(10, 10)
print("nouvelle abscisse de p2: ",p2.getX())
print("nouvelle ordonnée de p2: ",p2.getY())
main()

Exemple 2 : une liste de points

class Point2D:
def __init__(self,x,y):
self.__x=x
self.__y=y
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 translater(self,dx,dy):
self.__x=self.__x+dx
self.__y=self.__y+dy
def creerliste():
liste=[]
return liste

def ajouter(liste,p):
liste.append(p)

def afficherliste(liste):
for i in range(len(liste)):
print("____________________")
print("abscisse: ",liste[i].getX())
print("ordonnée: ",liste[i].getY())
print("____________________________")

def main():
liste=creerliste()
while True:
print("1.Ajouter un point")
print("2.Afficher les points")
print("3.Sortie")
choix=int(input("Votre choix?"))
if choix==1:
x=float(input("abscisse ?"))
y=float(input("ordonnée ?"))
p=Point2D(x,y)
ajouter(liste,p)
else:
if choix==2:
afficherliste(liste)
else:
if choix==3:
break;
else:
print("choix invalide !!!!!")
print("Fin de l'application !!!!")
main()

Vous aimerez peut-être aussi