In Python sind Sie nach der Erstellung einer Instanz einer Klasse nicht auf die während der Initialisierung zugewiesenen Werte beschränkt. Sie können die Attribute einer Instanz direkt ändern. Nehmen wir zum Beispiel unsere Book-Klasse von früher. Nachdem Sie eine Book-Instanz erstellt haben, möchten Sie möglicherweise die Seitenzahl oder den Namen des Autors aktualisieren. Dies erreichen Sie, indem Sie direkt auf das Attribut mit dem Punktoperator . zugreifen und einen neuen Wert zuweisen:
class Book:
def __init__(self, title, author, pages):
self.title = title # Titel der Buchinstanz zuweisen
self.author = author # Autor der Buchinstanz zuweisen
self.pages = pages # Seitenzahl der Buchinstanz zuweisen
self.is_read = False # Buch wurde noch nicht gelesen
book1 = Book('To Kill a Mockingbird', 'Harper Lee', 281)
print(book1.pages) # 281
book1.pages = 324 # Seitenzahl aktualisieren
print(book1.pages) # 324
print(book1.author) # 'Harper Lee'
book1.author = 'Lee, Harper' # Autorname aktualisieren
print(book1.author) # 'Lee, Harper'
Herausforderung: Erstellen Sie eine Book-Klasse
Ihre Aufgabe ist es, eine Book-Klasse mit vier Attributen zu entwerfen:
title: Standardwert "Untitled Book"
author: Standardwert "Unknown Author"
price: Standardwert 0.0
quantity_in_stock: Standardwert 0
Die Klasse sollte alle Attribute in ihrem Konstruktor mit diesen Standardwerten initialisieren (die __init__-Methode soll keine Argumente annehmen). Die Klasse sollte außerdem eine Methode display enthalten, die die aktuellen Attribute des Buches in einem lesbaren Format anzeigt. Das Format sollte wie folgt sein: "Title: [title], Author: [author], Price: [price], Quantity in stock: [quantityinstock]".
Das Programm erhält dann zwei Zeilen Eingabe. Die erste Zeile enthält den Namen eines Attributs (title, author, price, quantity_in_stock). Die zweite Zeile enthält einen Wert für dieses Attribut.
Ihr Programm soll diesen neuen Wert dem angegebenen Attribut zuweisen und dann die display-Methode des Book-Objekts aufrufen, um die aktuellen Attribute des Buches auszugeben.
Input
Output
title
War and Peace
Title: War and Peace, Author: Unknown Author, Price: 0.0, Quantity in stock: 0