Vous êtes sur la page 1sur 15

Département GE1

MC S3

Programmation Orientée
Objet Python

N. Liebeaux – (c) IUT CACHAN 2008


Programmation orientée objet Python
Python en 1 diapo

Règles de syntaxe
● langage interprété

● typage dynamique des données

● les « deux points »


types de données
● nombres entiers & flottants
● blocs découpés par l'indentation
● chaînes " "

● listes [ ]

Contrôle de Flux
● for, while

● if, else, elif Les Fonctions


● utilisation de def et « : »

● passage de paramètres

● return renvoie le résultat


Programmation orientée objet Python
Introduction : objet, classe et instanciation

 Objet : entité évoluée associée à des données et des fonctions


(appelées méthodes) qui lui sont propres.
 Une Classe est le moule qui permet de créer l'objet, ou les objets.
 L'opération de création d'un nouvel objet à partir d'une classe est
appelée instanciation.

class rectangle():
"cette classe définit les rectangles"

>>> rect1 = rectangle()


>>> print rect1
>>> print rect1.__doc__
instanciation

__doc__ est une méthode


Programmation orientée objet Python
piège

>>> r2 = r1
>>> print r2==r1
>>> print r1
>>> print r2
r2 est un alias de r1 portant
>>> r2 = rectangle() sur le même objet.
>>> print r2==r1
>>> print r1
>>> print r2

piège bis

>>> liste1 = [1,2,3,"a","b","z"]


>>> liste2 = [1,2,3,"a","b","z"]
>>> print liste1,liste2
>>> print liste2[5]="c"
>>> print liste1,liste2
Programmation orientée objet Python
constructeur

class rectangle():
"cette classe instancie des rectangles"

def __init__(self, dim1, dim2):


self.longueur = dim1
self.largeur = dim2

la fonction __init__ est le constructeur. C'est la méthode


qui "construit" l'objet lors du premier appel

 notez l'usage du mot réservé self.


 la méthode __init__ nécessite ici deux paramètres (et non pas 3),
correspondant aux dimensions du rectangle.
Programmation orientée objet Python
exemple

>>> r1 = rectangle()
>>> r1 = rectangle(2,3)
>>> print r1.longueur
>>> print r1.largeur

encapsulation

un objet porte en lui-même ses données et ses méthodes : c'est


l'encapsulation.
 avec ce concept, l'objet est utilisé via ses méthodes, peu importe pour
l'utilisateur de connaître le contenu (le code) des dites méthodes.

syntaxe
objetInstancié.méthode()
Programmation orientée objet Python
encapsulation

class rectangle():
"cette classe instancie des rectangles"

def __init__(self, dim1, dim2):


self.longueur = dim1
self.largeur = dim2

def calculerAire(self):
print "Aire ",self.dimensions," :"
return self.longueur*self.largeur
Programmation orientée objet Python
héritage

class carre(rectangle):
"cette classe instancie des carrés"

def __init__(self, dim1):


rectangle.__init__(self,dim1, dim1)

 une classe mère peut donc dériver plusieurs classes filles. C'est la
classe parente.

 idée de spécialisation de la classe fille.


Programmation orientée objet Python
polymorphisme

class carre(rectangle):
"cette classe instancie des carrés"

def __init__(self, dim1):


rectangle.__init__(self,dim1, dim1)

def calculAire(self):
print "on travaille avec un carré"
print self.longueur*self.largeur

 Polymorphisme = plusieurs méthodes de même nom dans les


classes filles.
 la méthode calculAire est définie dans la classe rectangle.

 la méthode calculAire est définie dans la classe carré. On parle


alors de surcharge.
Programmation orientée objet Python
exercice corrigé

1/ - proposer une structure de classe point :


coordonnées x et y.
2/ - proposer une structure de classe vecteur.
3/ - proposer une méthode permettant de calculer le
produit scalaire.
4/ - proposer une méthode permettant de vérifier si
deux vecteurs sont orthogonaux.

conclusion

Classes filles peuvent :


 étendre les concepts de la classe parente (ex: points vecteurs)
 Affiner les concepts de la classe parente (ex: rectangle carré)
Programmation orientée objet Python
exercice

1/ - proposer une structure de classe individu : nom,prénom, date


de naissance.
2/ - proposer une structure de classe étudiant : bac, notes par
matière.
3/ - proposer une méthode permettant de calculer l'age d'un
individu,
4/ - proposer une méthode permettant d'ajouter une note.
5/ - proposer une méthode de calcul de moyenne générale des
notes.
Programmation orientée objet Python
évaluation du projet

 Travail en binôme
 Fiches de suivi, avec numéros de versions, tests unitaires et
progressions.
 Test individuel de fin de Module.

rappels sur la programmation XP

Pratiques
Pratiques
Pratiques
« «Développement
Développeur
« Métier » » »

✔ Ajoutez
Codez etun
Adoptez le
concevez
développement
client àavec
l'équipe
simplicité
piloté par les tests
✔ Jouez
Pratique
Programmez
le jeu
la restructuration
deenlabinôme
planification
(optimisation du code)
✔ Livrez
Développez
Adoptez régulièrement
la propriété
des standards
collective
de développement
du code
✔ Travaillez
Développez
Intégrez continuellement
à un rythme
vocabulaire
raisonnable
commun
Programmation orientée objet Python
évaluation du projet

 Travail en binôme
 Fiches de suivi, avec numéros de versions, tests unitaires et
progressions.
 Test individuel de fin de Module.

rappels sur la programmation XP

Pratiques
Pratiques« «Développement
Développeur » »

✔ Adoptez
Codez et le
concevez
développement
avec simplicité
piloté par les tests
✔ Programmez
Pratique la restructuration
en binôme (optimisation du code)
✔ Adoptez
Développez
la propriété
des standards
collective
de développement
du code
✔ Intégrez
Développez
continuellement
un vocabulaire commun
Programmation orientée objet Python
évaluation du projet

 Travail en binôme
 Fiches de suivi, avec numéros de versions, tests unitaires et
progressions.
 Test individuel de fin de Module.

rappels sur la programmation XP

Pratiques « Développement »

✔ Codez et concevez avec simplicité


✔ Pratique la restructuration (optimisation du code)
✔ Développez des standards de développement
✔ Développez un vocabulaire commun
Programmation orientée objet Python
le Projet du MC

objectifs premiers

 Mise en oeuvre des techniques « Objet ».


 Aucune interface graphique (tout en mode texte)
 Jeu Humain VS Humain

objectifs secondaires
 Interface graphique
 Mise en place d'une IA : jeu Humain VS PC

Vous aimerez peut-être aussi