Quel est cet objet ?
Comment la décrire ?
Que peut on faire avec ?
Quel est cet objet ?
Comment la décrire ?
Que peut on faire avec ?
La programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation
informatique.
En POO, on décrit les propriétés d'un objet.
Classe & instance
Les classes sont les modèles générique qui permettent de définir les
propriétés de chaque objet issue d’une même classe.
Un objet est une instance d’une classe.
Attributs & méthodes
Un objet est composé d’attributs et de méthodes :
class NomDeLaClasse: instructions
mon_instance = MaClasse()
class Sorcier: pass sorcier1 = Sorcier()
class Sorcier: pass sorcier1 = Sorcier() sorcier1.nom = "Potter"
class Sorcier: pass sorcier1 = Sorcier() sorcier1.nom = "Potter" sorcier1.prenom = "Harry"
class Sorcier: pass sorcier1 = Sorcier() sorcier1.nom = "Potter" sorcier1.prenom = "Harry"
sorcier1
, il faudra donc faire.
class Sorcier: pass sorcier1 = Sorcier() sorcier1.nom = "Potter" sorcier1.prenom = "Harry" print(sorcier1.nom)
__init__
class Sorcier: def __init__(self):
class Sorcier: def __init__(self): self.prenom = "Harry"
class Sorcier: def __init__(self): self.prenom = "Harry" self.nom = "Potter"
class Sorcier: def __init__(self): self.prenom = "Harry" self.nom = "Potter" self.maison = "Griffondor"
class Sorcier: def __init__(self): self.prenom = "Harry" self.nom = "Potter" self.maison = "Griffondor" self.age = 11
class Sorcier: def __init__(self): self.prenom = "Harry" self.nom = "Potter" self.maison = "Griffondor" self.age = 11 self.sorts = []
class Sorcier: def __init__(self): self.prenom = "Harry" self.nom = "Potter" self.maison = "Griffondor" self.age = 11 self.sorts = [] sorcier1 = Sorcier() sorcier2 = Sorcier()
class Sorcier: def __init__(self): self.prenom = "Harry" self.nom = "Potter" self.maison = "Griffondor" self.age = 11 self.sorts = [] sorcier1 = Sorcier() sorcier2 = Sorcier() print(sorcier1.prenom) print(sorcier2.prenom)
class Sorcier: def __init__(self,prenom, nom, maison, age): self.prenom = prenom self.nom = nom self.maison = maison self.age = age self.sorts = []
class Sorcier: def __init__(self,prenom, nom, maison, age): self.prenom = prenom self.nom = nom self.maison = maison self.age = age self.sorts = [] harry = Sorcier("Harry","Potter","Griffondor",11)
class Sorcier: def __init__(self,prenom, nom, maison, age): self.prenom = prenom self.nom = nom self.maison = maison self.age = age self.sorts = []
class Sorcier: def __init__(self,prenom, nom, maison, age): self.prenom = prenom self.nom = nom self.maison = maison self.age = age self.sorts = [] def presentation(self):
class Sorcier: def __init__(self,prenom, nom, maison, age): self.prenom = prenom self.nom = nom self.maison = maison self.age = age self.sorts = [] def presentation(self): print(f"Bonjour je m'appelle {self.prenom} {self.nom}, je suis de la maison {self.maison}")
Encapsulation
L’encapsulation est le regroupement de données et de méthodes dans une classe afin que vous puissiez masquer
les informations et restreindre l’accès de l’extérieur.
class Sorcier:
def __init__(self, nom, point_vie, endurance):
self.nom = nom
self.point_vie = point_vie
self.endurance = endurance
class Sorcier:
def __init__(self, nom, point_vie, endurance):
self.nom = nom
self.point_vie = point_vie
self.endurance = endurance
self.__sorts = []
harry = Sorcier("Harry",100,75)
print(harry.nom)
"Harry"
harry.nom = "Hermione"
print(harry.nom)
"Hermione"
harry.__sorts = []
AttributeError: 'Sorcier' object has no attribute '__sorts'
Attributs privés
On peut vouloir que certains attributs ne soient pas directement accessible.
On peut aussi vouloir vérifier que les valeurs données à certains attributs respect des régles
_
(1 espace souligné) ou
__
(2 espaces soulignés)
def __init__(self, nom, point_vie, endurance):
def __init__(self, nom, point_vie, endurance):
# **** Assertions : question 1.a. à compléter sur votre copie
Mon_Yaourt = Yaourt('fraise',24)
Mon_Yaourt
?
# **** Méthode GetArome(self) question 1.c. à compléter sur votre copie
# **** Méthode set_arome(self) question 1.c. à compléter sur votre copie