Coding for KidsCoding for Kids
Kreative LevelHerausforderungenLehrerhandbuch
Für Funktionen abstimmen
Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe

Fortgeschrittene Klassen
Super-Funktion

Ziel

Sammle verschiedene Fleischsorten, koche sie und serviere sie auf unterschiedliche Weise, indem du Objekte mit Superfunktionen erstellst.

Der Kühlschrank enthält verschiedene Fleischsorten, die du zusammen mit den Zwiebeln, die du im vorherigen Level mit Öl zubereitet hast, kochen und servieren kannst. Das Fleisch kann auf verschiedene Arten und bei unterschiedlichen Temperaturen/Garstufen zubereitet werden. Dies erreichst du, indem du Objekte aus Klassen erstellst, ähnlich wie in den vorherigen Levels, aber mit der zusätzlichen Möglichkeit, Superfunktionen zu nutzen.

Die super()-Funktion wird ähnlich wie beim Überschreiben von Methoden verwendet; der Unterschied besteht darin, dass du mit dieser Funktion die Funktion der übergeordneten Klasse zusätzlich zu deinem eigenen Code in der untergeordneten Klasse ausführen kannst, anstatt die Funktion vollständig zu überschreiben.

# Parent Class class cooked_meat: type = "" def cook_meat(self): player.speak("Cooking the %s meat with oil and onions." % self.type) player.place("meat") player.collect("cooked %s" % self.type) # Child Class class ready_meat(cooked_meat): rarity = "" def cook_meat(self): super().cook_meat() player.speak("The meat is cooked %s" % self.rarity)

Innerhalb der untergeordneten Klassen-Funktion cook_meat() wird die super()-Funktion verwendet. Da cook_meat() auch eine Funktion in der übergeordneten Klasse ist, würde die benutzerdefinierte Funktion normalerweise den vererbten Code aufgrund des Method Overriding überschreiben, aber durch die Verwendung der super()-Funktion kannst du den Code in der übergeordneten Klasse sowie den neuen Code, den du in der untergeordneten Klasse schreibst, ausführen.

Gehe zunächst zum Kühlschrank und sammle die vier (4) Fleischstücke ein, die du zum Kochen verwenden wirst. Jedes der vier Fleischstücke ist von einer anderen Sorte, nämlich: "pork", "beef", "lamb" und "buffalo".

Nachdem du sie eingesammelt hast, gehe zum hellen X-Punkt und erstelle Objekte für jedes der Fleischsorten, um sie zu kochen. Setze für jedes Fleischobjekt den Fleischtyp und die Garstufe, die du verwenden möchtest, zum Beispiel:

pork_meat = ready_meat() pork_meat.type = "pork" pork_meat.rarity = "medium" pork_meat.cook_meat()

Die Garstufe entspricht der gewünschten Kochtemperatur für das Fleisch. Lass die Fleischsorten bis zu folgenden Garstufen kochen: "pork" gekocht "medium", "beef" gekocht "well done", "buffalo" gekocht "medium rare" und "lamb" gekocht "rare". Verwende an der X-Markierung nach der Festlegung des Fleischtyps und der Garstufe die Funktion cook_meat() der untergeordneten Klasse, wie im obigen Beispiel gezeigt.

Nachdem die Fleischsorten gekocht wurden, gehe zum dunklen X-Punkt auf dem gelben Teppich und verwende die Funktion collect(), um sowohl "salt" als auch "pepper" aus der Speisekammer zu holen. Erstelle eine Liste namens ingredients und füge die beiden eingesammelten Zutaten hinzu, wie folgt: ingredients = ["salt","pepper"].

Mit den zusätzlichen Zutaten kannst du das Fleisch nun zusammen mit Tellern auf dem Tisch servieren. Erstelle für jedes der gekochten Fleischstücke eine Liste mit den folgenden Namen: served_pork, served_beef, served_lamb und served_buffalo. Füge diesen Listen das gekochte Fleisch zusammen mit der Zutatenliste als verschachtelte Liste hinzu, zum Beispiel:

served_pork = [] served_pork.append("cooked pork") served_pork.append(ingredients)

Sobald die Listen eingerichtet sind, gehe zu den goldenen X-Punkten und verwende die Funktion place(), um das Fleisch auf den Tellern, die auf den Theken stehen, zu servieren. Am oberen goldenen X-Punkt, richte dich zum Tisch aus, place(): served_pork und served_buffalo. Am unteren goldenen X-Punkt, richte dich zum Tisch aus, place(): served_lamb und served_beef. Zum Beispiel: player.place(served_pork). Sobald alle Fleischsorten serviert sind, hast du das Level abgeschlossen.

Codebuch