Академический Документы
Профессиональный Документы
Культура Документы
Option Informatique
Ecole Alsacienne
PLAN
1. La programmation oriente objet
5. Hritage
6. Mini-TD
L A PROGRAMMATION ORIENTE OBJET
L A PROGRAMMATION ORIENTE OBJET
Qu'est-ce que la programmation oriente objet ?
Un objet est une brique d'un programme qui reprsente une entit, un
concept, ou une ide.
Exemples :
Une voiture
Une personne
Une couleur
Une thmatique
etc.
Exemple :
Sans objet
john = ["John", "Doe", 17]
age_john = john[2]
print(type(john))
list
Avec un objet
john = Personne("John", "Doe", 17)
age_john = john.age
print(type(john))
Personne
Exemple :
Classe : Personne
Objets : Barack Obama, Bill Gates, etc.
Exemples
Les listes/tableaux sont des objets de type list
Les chanes de caractres sont des objets de type str
Les fonctions que nous avons vues sur ces tableaux sont en fait
les mthodes mises disposition pour la classe list :
append
pop
extend
reverse
etc.
L encore, ces objets possdent des mthodes qui vous permettent d'interagir
avec ces chanes de caracttres
upper : Renvoie une copie de la chane, entirement en majuscules
lower : Renvoie une copie de la chane, entirement en minuscules
capitalize : Renvoie une copie de la chane, avec la premire lettre en majuscule
center : Renvoie une nouvelle chane de caractre de longueur dtermine, avec la
chane initiale en son centre
Remarques :
Ces mthodes renvoient des chanes de caractres
Cest--dire de nouveaux objets bass sur la classe str !
Les mthodes de la classe str sont donc disponibles pour ces rsultats
On peut donc "enchaner" les mthodes :
texte = "hello"
super_texte = texte.capitalize().center(15)
print(super_texte)
Hello
Rponse nave :
print("Je m'appelle ", end = "")
print(prenom, end = "")
print(" et j'ai ", end = "")
print(age, end = "")
print(" ans.")
Accder un attribut
Syntaxe : nomObjet.nomAttribut
Stockage dans une variable : x = nomObjet.nomAttribut
Rponse : tout !
Exemple :
Eleve
Graphe
Plateau de jeu
etc.
def __init__(self):
[instructions excuter quand on cre un objet]
def __init__(self):
self.prenom = "John"
x = Personne()
print(type(x))
Rsultat :
<class '__main__.Personne'>
Exemple
class Personne:
def __init__(self):
self.prenom = "John"
self.nom = "Doe"
x = Personne()
print(x.prenom)
Rsultat
John
Exemple
class Personne:
def __init__(self):
self.prenom = "John"
self.nom = "Doe"
x = Personne()
print(x.prenom)
x.prenom = "Jane"
print(x.prenom)
Rsultat
John
Jane
Exemple
class Personne:
x = Personne("Jack", "Smith")
print(x.prenom)
Rsultat
Jack
def sePresenter(self):
s = "Bonjour, je m'appelle " + self.prenom + " " + self.nom + "!"
print(s)
x = Personne("Jack", "Smith")
x.sePresenter()
Rsultat :
Bonjour, je m'appelle Jack Smith!
Remarque importante : Lorsqu'on fait appel une mthode d'un objet, il est inutile de
renseigner le paramtre self.
def sePresenter(self):
s = "Bonjour, je m'appelle " + self.prenom + " " + self.nom + "!"
print(s)
x = Personne("Jack", "Smith")
x.sePresenter()
x.changerDeNom("Doe")
x.sePresenter()
Rsultat :
Bonjour, je m'appelle Jack Smith!
Bonjour, je m'appelle Jack Doe!
x = Personne("Jack", "Smith")
print(x)
Rsultat :
<__main__.Personne object at 0x029E0990>
def __repr__(self):
s = "Personne : " + self.prenom + " " + self.nom
return s
x = Personne("Jack", "Smith")
print(x)
Rsultat
Personne : Jack Smith
class MaClasse:
x = MaClasse(1, 2)
y = MaClasse(1, 2)
print(x == y)
False
class MaClasse:
x = MaClasse(1, 2)
y = MaClasse(1, 2)
print(x == y)
True
Avantages :
Une classe "fille" bnficie de tout ce qui a t dclar pour la classe
"mre" (attributs et mthodes)
Mais elle peut aussi possder des attributs et des mthodes qui lui
sont propres
Hritage
EXEMPLE : LE MONDE ANIMAL
Classes
Les classes Vertebre et Invertebre hritent de la classe Animal
Les classes Mammifere, Oiseau, Poisson, etc. hritent de la classe Vertebre
Attributs
L'attribut estVivant pourra tre dfini au niveau de la classe Animal
L'attribut nombreVertebres pourra tre dfini au niveau de la classe Vertebre
L'attribut branchies pourra tre dfini au niveau de la classe Poisson
Mthodes
La mthode mourir pourra tre dfini au niveau de la classe Animal
La mthode allaiter pourra tre dfini au niveau de la classe Mammifere
Hritage
L'HRITAGE EN PYTHON
Syntaxe :
class ClasseA:
# Details de la classe ClasseA
class ClasseB(ClasseA):
# Details de la classe ClasseB
Hritage
UTILISER L'EXISTANT
Qu'affiche le code ci-dessous ?
class Animal:
def __init__(self):
self.estVivant = True
class Vertebre(Animal):
a0 = Animal()
print(a0.estVivant)
v0 = Vertebre(5)
print(v0.estVivant)
True
AttributeError: 'Vertebre' object has no attribute 'estVivant'
Hritage
UTILISER L'EXISTANT
Syntaxe :
class ClasseB(ClasseA):
Hritage
UTILISER L'EXISTANT
Qu'affiche le code ci-dessous ?
class Animal:
def __init__(self):
self.estVivant = True
class Vertebre(Animal):
a0 = Animal()
print(a0.estVivant)
v0 = Vertebre(5)
print(v0.estVivant)
True
True
Hritage
A JOUTER DES ATTRIBUTS
Exemple :
class Vertebre(Animal):
Hritage
A JOUTER DES MTHODES
Pour ajouter des mthodes spcifiques la classe "fille", il suffit de les dclarer
dans l'intrieur de cette classe :
Exemple :
class Vertebre(Animal):
def afficherNombreVertebres(self):
print("Nombre de vertebres : ", self.nombreVertebres)
v0 = Vertebre(5)
print(v0.estVivant)
v0.afficherNombreVertebres()
True
Nombre de vertebres : 5
Hritage
MINI-TD
PROCHAINE SANCE
Vendredi 11 dcembre
[TD] TROLLS ET CHTEAUX