Dans cet exercice, vous devez initialiser l'instance harry_potter et créer un attribut d'instance pour que l'instance ait un prix différent de celui par défaut.
L'instance harry_potter devra donc avoir un prix de 19,99€.
L'attribut de classe prix de la classe Livre lui ne doit pas changer et doit rester à 9,99€.
Attention
Vous devez créer une méthode pour initialiser l'instance. Vous ne pouvez pas simplement modifier l'attribut prix de l'instance pour lui donner la valeur de 19.99. Si vous faites ceci, l'exercice ne sera pas validé.
Pour initialiser une instance, on utilise la méthode __init__.
Pour créer un attribut d'instance, il ne faut pas oublier d'utiliser self.
code Code
class Livre:
prix = 9.99
def __init__(self, prix):
self.prix = prix
harry_potter = Livre(19.99)
comment Explications
Pour initialiser une instance, on utilise la méthode __init__ qui est appelée automatiquement lorsque l'on crée une instance.
À l'intérieur de cette méthode, il ne faut pas oublier de mettre en premier paramètre self, qui correspond à notre instance, et va nous permettre à l'intérieur de cette méthode de créer un attribut propre à notre instance.
Cet attribut prix est le deuxième paramètre que nous donnons à la méthode __init__.
Ainsi, nous pouvons définir un prix personnalisé pour notre instance au moment de sa création :
harry_potter = Livre(19.99)
Et le récupérer pour l'assigner à notre instance (self) dans la méthode __init__ :
def __init__(self, prix):
self.prix = prix
Ainsi, on définit un attribut prix uniquement sur notre instance (self) et l'attribut de classe prix reste inchangé à 9.99€.
star Points importants
-
Pour initialiser une instance, on utilise la méthode
__init__. -
Pour référer à notre instance à l'intérieur d'une méthode, on utilise le paramètre
self. -
Pour créer un attribut d'instance, on utilise la syntaxe
self.attribut = valeur.
class Livre:
prix = 9.99
harry_potter = Livre()class Livre:
prix = 9.99
def __init__(self, prix):
self.prix = prix
harry_potter = Livre(19.99)Console
Un instant...
Résultats
Test de l'attribut d'instance prix
try:
assert harry_potter.prix == 19.99, ""
except NameError:
raise NameError("L'instance harry_potter n'a pas d'attribut prix.")
except AssertionError:
raise AssertionError("L'attribut d'instance prix de la variable harry_potter ne contient pas la bonne valeur.")
assert '__init__' in dir(Livre), "La classe Livre doit contenir une méthode permettant d'initialiser une instance."Test de l'attribut de classe prix
try:
assert Livre.prix == 9.99, ""
except NameError:
raise NameError("La classe Livre n'a pas d'attribut prix.")
except AssertionError:
raise AssertionError("L'attribut de classe prix de la classe Livre ne contient pas la bonne valeur.")Bravo, tu as réussi cet exercice de code 🥳
Envoyer ma solution
Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇
Ma solution :


