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)
Mon_Yaourt = Yaourt('fraise',24)
Mon_Yaourt
?