En Python, après avoir créé une instance d'une classe, vous n'êtes pas limité aux valeurs assignées lors de l'initialisation. Vous pouvez modifier directement les attributs d'une instance. Par exemple, utilisons notre classe Book de plus tôt. Après avoir créé une instance de Book, vous pourriez vouloir mettre à jour le nombre de pages ou le nom de l'auteur. Vous pouvez le faire en accédant directement à l'attribut en utilisant l'opérateur point ., et en assignant une nouvelle valeur :
class Book:
def __init__(self, title, author, pages):
self.title = title # Assigne le titre à l'instance du livre
self.author = author # Assigne l'auteur à l'instance du livre
self.pages = pages # Assigne le nombre de pages à l'instance du livre
self.is_read = False # Le livre n'a pas encore été lu
book1 = Book('To Kill a Mockingbird', 'Harper Lee', 281)
print(book1.pages) # 281
book1.pages = 324 # Met à jour le nombre de pages
print(book1.pages) # 324
print(book1.author) # 'Harper Lee'
book1.author = 'Lee, Harper' # Met à jour le nom de l'auteur
print(book1.author) # 'Lee, Harper'
Défi : Créer une classe Book
Votre tâche est de concevoir une classe Book avec quatre attributs :
title : par défaut "Untitled Book" (Livre sans titre)
author : par défaut "Unknown Author" (Auteur inconnu)
price : par défaut 0.0
quantity_in_stock : par défaut 0
La classe doit initialiser tous les attributs avec ces valeurs par défaut dans son constructeur (la méthode __init__ ne doit prendre aucun argument). La classe doit également inclure une méthode display pour afficher les attributs actuels du livre dans un format lisible. Le format doit être "Title: [title], Author: [author], Price: [price], Quantity in stock: [quantityinstock]".
Le programme prendra ensuite deux lignes d'entrée. La première ligne contient le nom d'un attribut (title, author, price, quantity_in_stock). La seconde ligne contient une valeur pour cet attribut.
Votre programme doit assigner cette nouvelle valeur à l'attribut spécifié dans l'entrée, puis appeler la méthode display sur l'objet Book pour afficher les attributs actuels du livre.
Entrée
Sortie
title
War and Peace
Title: War and Peace, Author: Unknown Author, Price: 0.0, Quantity in stock: 0