Coding for KidsCoding for Kids
Kreativa NivåerUtmaningarLärarguide
Rösta på funktioner
Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå

Avancerade klasser
Superfunktion

Mål

Samla olika köttstycken och laga och servera dem på olika sätt genom att skapa objekt med superfunktioner.

Kylskåpet har olika köttstycken som du kan laga och servera med de lökar du förberedde med olja i föregående nivå. Köttet kan lagas på olika sätt och till olika temperaturer/sällsyntheter; du kan göra detta genom att skapa objekt från klasser, precis som i tidigare nivåer, men det kan förbättras med hjälp av Super Functions.

Funktionen super() används på liknande sätt som metodöverskuggning, skillnaden är att genom att använda denna funktion kan du köra den förälder klassens funktion utöver din egen kod i den barn klassen istället för att helt överskugga funktionen.

# 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)

Inuti barnklassens funktion cook_meat() används super()-funktionen. Eftersom cook_meat() även används i föräldraklassen skulle den anpassade funktionen normalt överskugga den ärvda koden på grund av metodöverskuggning, men genom att använda super() kan du köra koden i föräldraklassen såväl som den nya koden du skriver i barnklassen.

Gå först till kylskåpet och hämta de fyra (4) köttbitarna som du ska använda för att laga mat. Varje köttbit är av en annan typ: "pork", "beef", "lamb" och "buffalo".

När du har hämtat dem, gå till det ljusa X-märket och skapa objekt av varje köttsort för att laga dem. För varje köttobjekt, ange vilken typ av kött det är och vilken sällsynthet du vill laga det till, till exempel:

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

Sällsynthet är den tillagningstemperatur du vill att köttet ska lagas vid. Låt köttet tillagas enligt följande sällsyntheter: "pork" lagat "medium", "beef" lagat "well done", "buffalo" lagat "medium rare" och "lamb" lagat "rare". Vid X-märket, använd barnklassens funktion cook_meat() efter att du har satt typ och sällsynthet för köttet, som visat i exemplet ovan.

När köttet har lagats, gå till det mörka X-märket på den gula mattan och använd funktionen collect() för att hämta både "salt" och "pepper" från skafferiet. Skapa en lista med namnet ingredients och lägg i de två hämtade ingredienserna, så här: ingredients = ["salt","pepper"].

Med de extra ingredienserna kan du nu servera köttet med tallrikar på bordet. Skapa en lista för varje lagat kött med följande namn: served_pork, served_beef, served_lamb och served_buffalo. Foga till dessa listor det lagade köttet tillsammans med ingredienslistan genom att skapa en inbäddad lista, till exempel:

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

När listorna har satts upp, gå till de gyllene X-märkena och använd funktionen place() för att servera köttet på tallrikarna som finns på bänkarna. Vid det övre gyllene X-märket, med ansiktet mot bordet, använd place() för att placera: served_pork och served_buffalo. Vid det nedre gyllene X-märket, med ansiktet mot bordet, använd place() för att placera: served_lamb och served_beef. Till exempel: player.place(served_pork). När allt kött är serverat har du slutfört nivån.

Kodbok