Vous êtes sur la page 1sur 2

Dnition dune classe lmentaire

Dnition dune classe

Cours 2 : Les objets en Python

class Point : "Dfinition dun point mathmatique" e e

Utilisation de cette classe


point1=Point() point2=Point()

POO p.1

POO p.2

Attributs dune classe


class Point : "Dfinition dun point mathmatique" e e x=0 y=0

Fonction avec objet en paramtres


def affichePoint(p): "p est un point" print "Abscisse :",p.x,"Ordonne :",p.y e

Utilisation de cette fonction


point=Point() point.x=12 point.y=15 >>> affichePoint(point) Abscisse : 12 Ordonne : 15 e

Utilisation de cette classe


point=Point() point.x=12 point.y=15 print point.y
POO p.3

POO p.4

Passage dargument par rfrence


Lors de lappel de fonction les objets passs en argument sont transmis par rfrence. Si la fonction modie lobjet elle modie loriginal galement Exemple : def test(a,b): "a et b sont quelconques" a=b >>> pt1.x,pt1.y=5,10 >>> pt2.x,pt2.y=10,15 >>> test(pt1,pt2) >>> print pt1.x,pt1.y 10 15
POO p.5

galit dobjets
>>> p1=Point() ; p1.x=5 ; p1.y=3 >>> p2=Point() ; p2.x=5 ; p2.y=3 >>> print p1==p2 False >>> p1=Point() ; p1.x=5 ; p1.y=3 >>> p2=p1 >>> print p1==p2 True >>> affichePoint(p1) Abscisse : 5 Ordonne : 3 e >>> p2.x=0 >>> affichePoint(p1) e Abscisse : 0 Ordonne : 3

POO p.6

Mthodes
Une mthode est une fonction attache un objet. Elle est dnie dans la classe de cet objet. Dniton dune mthode class Point : "Dfinition dun point mathmatique" e e x=0 y=0 def affiche(self) : "Affiche lobjet" print "Absc. :",self.x,"Ord. :",self.y Utilisation dune mthode >>> point=Point() >>> point.affiche() Absc. : 0 Ord. : 0
POO p.7

Mthodes classique
Pour respecter le principe dencapsulation de la programmation objets, on vite daccder directement aux attributs dun objet Mthodes classiques : class Point : x=0 ; y=0 def getx(self) : return self.x def sety(self,y) : self.y = y def getCoord(self) : return (self.x,self.y) def setCoord(self,x,y) : self.x = x ; self.y = y
POO p.8

Le constructeur
La mthode constructeur est appele la cration dun objet. En Python cest la fonction __init__ Dnition du constructeur : class Point:
def __init__(self,x=0,y=0): "Le constructeur de la classe" self.x = x self.y = y pt=Point(15,12) >>>pt.affiche() Absc. : 15 Ord. : 12
POO p.9

Le constructeur - 2
Trs souvent en Python on ne dclare pas les attributs dun objets Ils sont souvent dnis et initialiss par le constructeur Exemple : class Point: x=0 # Ces deux lignes sont y=0 # inutiles en Python def __init__(self,x=0,y=0): "Le constructeur de la classe" # Ceci suffit ` dfinir les a e # champs des points self.x = x self.y = y
POO p.10

Le destructeur
La mthode destructeur est appele la destruction dun objet. En Python cest la fonction __del__ Dnition du destructeur : class Point:
def __del__(self): print "Un point a t dtruit" e e e def bidon(): pt=Point() >>> bidon() Un point a t dtruit e e e
POO p.11

Nouveaux objets
Il est possible de dnir des objets en utilisant dautres objets class Point: def __init__(self,x=0,y=0): def bouge(self,dx=0,dy=0):

class Rectangle: "Simple rectangle" def __init__(self,x=0,y=0,l=0,L=0): self.base=Point(x,y) self.long=l self.larg=L def bouge(self,dx=0,dy=0): "Deplacement de la base du rectangle" self.base.bouge(dx,dy)
POO p.12

Remarque
Il est ainsi possible de construire de nouveaux objets en utilisant de nombreux objets prdnis

Exercice
Exercice. Construire une classe temps disposant dheure, de minute ` et de secondes. Ayant un constructeur qui par defaut initialise le temps a zero heure pile. On prevoira egalement une methode dafchage qui afche un temps de cette facon : hh : mm :ss

Attention : Il ne sagit pas dhritage

POO p.13

POO p.14

Hritage
Lhritage consiste dnir une nouvelle classe partir dune classe existante Exemple : class PointCol(Point):
def __init__(self,x=0,y=0,col=rouge): "Le constructeur de la classe" self.x = x self.y = y self.col=col
POO p.15

Hritage - 2
Lorsquune classe hrite dune autre elle peut : Utiliser les attributs de la classe parent Utiliser les mthodes de la classe parent dnir de nouveaux attributs dnir de nouvelle mthodes Rednir certaines mthodes

POO p.16