Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe
Fortgeschrittene Klassen
Methodenüberschreibung
Ziel
Flasche Öl ab, um Fleisch zu kochen, indem du Objekte mit überschriebenen Methoden erstellst.
Es gibt etwas Öl, das du verwenden könntest, um Gemüse zu kochen. Für eine leichtere Handhabung muss es jedoch zunächst abgefüllt werden. Die Verwendung von Klassen und das Erstellen von Objekten wäre eine effektive Methode, dies zu erreichen, ähnlich wie im vorherigen Level. Allerdings gibt es auch Wege, die Objekterbung innerhalb einer Klasse noch effektiver zu nutzen, zum Beispiel indem die Kind-Klasse Funktionen der Eltern-Klasse überschreibt.
# Parent Class
class oil_bottle:
label = ""
async def label_bottle(self):
await player.read()
# Child Class
class fill_bottle(oil_bottle):
def fill_bottle(self):
player.place("empty bottle")
player.collect("oilbottle")
async def label_bottle(self):
await player.write(self.label)
Im obigen Code überschreibt die Kind-Klasse die Funktion label_bottle() der Eltern-Klasse, um die Etiketten der Flaschen neu zu beschriften. Dies ermöglicht es auch, eine benutzerdefinierte Nachricht mit Hilfe von async-Funktionen festzulegen.
Um zu beginnen, sammle alle vier (4) leeren Flaschen auf dem Spielfeld ein. Sobald du sie eingesammelt hast, gehe zu den dunklen X-Markierungen und erstelle Objekte unter Verwendung der Klassen.
Es gibt vier (4) Arten von Öl, die abgefüllt werden sollen. Sie entsprechen den farbigen Teppichen vor den Maschinen: olive_oil wird auf dem gelben Teppich abgefüllt, avocado_oil auf dem grünen Teppich, canola_oil auf dem blauen Teppich und vegetable_oil auf dem roten Teppich.
Erstelle Objekte für jedes der Öle, schreibe ihr Etikett und aktiviere die Funktionen der Kind-Klasse label_bottle() und fill_bottle(), zum Beispiel:
olive_oil = fill_bottle() olive_oil.label = "Olive Oil" olive_oil.label_bottle() olive_oil.fill_bottle()
Jedes der Etiketten sollte den großgeschriebenen Namen jedes Öls enthalten, wie folgt: "Olive Oil", "Avocado Oil", "Canola Oil" und "Vegetable Oil".
Sobald du die Öle abgefüllt hast, gehe zur hellen X-Markierung vor einem Sack und verwende die Funktion collect(), um "onion" aus dem Sack zu holen. Anschließend gehst du zur goldenen X-Markierung und verwendest das Öl, um die Zwiebel zu kochen, indem du sie zusammen in einer Liste mit dem Namen ingredients speicherst, zum Beispiel: ingredients = ["Olive Oil", "onion"]. Verwende die Funktion place() mit der Liste, um die Zutaten zu kochen.
Schließlich lege die übrigen Öle in eine Liste mit dem Namen oils, zum Beispiel: oils = ["Avocado Oil","Canola Oil","Vegetable Oil"]. Gehe zur hellen X-Markierung auf dem violetten Teppich, wende dich dem Schrank zu und verwende die Funktion place() mit der Ölliste, um die Gegenstände im Schrank zu verstauen und das Level abzuschließen.