In Python, dopo aver creato un'istanza di una classe, non sei limitato ai valori assegnati durante l'inizializzazione. Puoi modificare direttamente gli attributi di un'istanza. Ad esempio, usiamo la nostra classe Book vista in precedenza. Dopo aver creato un'istanza di Book, potresti voler aggiornare il numero di pagine o il nome dell'autore. Puoi farlo accedendo direttamente all'attributo usando l'operatore punto ., e assegnandogli un nuovo valore:
class Book:
def __init__(self, title, author, pages):
self.title = title # Assegna il titolo all'istanza del libro
self.author = author # Assegna l'autore all'istanza del libro
self.pages = pages # Assegna il numero di pagine all'istanza del libro
self.is_read = False # Il libro non è ancora stato letto
book1 = Book('To Kill a Mockingbird', 'Harper Lee', 281)
print(book1.pages) # 281
book1.pages = 324 # Aggiorna il numero di pagine
print(book1.pages) # 324
print(book1.author) # 'Harper Lee'
book1.author = 'Lee, Harper' # Aggiorna il nome dell'autore
print(book1.author) # 'Lee, Harper'
Sfida: Crea una classe Book
Il tuo compito è progettare una classe Book con quattro attributi:
title: di default "Untitled Book"
author: di default "Unknown Author"
price: di default 0.0
quantity_in_stock: di default 0
La classe dovrebbe inizializzare tutti gli attributi con questi valori di default nel suo costruttore (il metodo __init__ non dovrebbe prendere alcun argomento). La classe dovrebbe anche includere un metodo display per mostrare gli attributi attuali del libro in un formato leggibile. Il formato dovrebbe essere "Title: [title], Author: [author], Price: [price], Quantity in stock: [quantityinstock]".
Il programma prenderà quindi due righe di input. La prima riga contiene il nome di un attributo (title, author, price, quantity_in_stock). La seconda riga contiene un valore per quell'attributo.
Il tuo programma dovrebbe assegnare questo nuovo valore all'attributo specificato nell'input, e poi chiamare il metodo display sull'oggetto Book per stampare gli attributi attuali del libro.
Ingresso
Uscita
title
War and Peace
Title: War and Peace, Author: Unknown Author, Price: 0.0, Quantity in stock: 0