Coding for KidsCoding for Kids
Kreativní ÚrovněVýzvyPrůvodce pro Učitele
Hlasovat pro funkce
Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň

Pokročilé třídy
Super funkce

Cíl

Sežeň různé druhy masa, poté je uvař a podávej různými způsoby vytvořením objektů se super funkcemi.

V lednici je různé maso, které můžeš vařit a podávat s cibulí, kterou jsi připravil s olejem v předchozí úrovni. Maso může být vařeno různými způsoby a na různé teploty/stupně propečení. To můžeš dosáhnout vytvořením objektů z tříd, podobně jako v předchozích úrovních, ale lze to vylepšit pomocí Super Funkcí.

Funkce super() se využívá podobně jako přepisování metod, rozdíl je v tom, že použitím této funkce můžeš spustit funkci třídy rodiče kromě vlastního kódu ve třídě potomka místo úplného přepsání funkce.

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

Uvnitř funkce třídy potomka cook_meat() se používá funkce super(). Protože cook_meat() je také funkce používaná v rodičovské třídě, vlastní funkce by normálně přepsala zděděný kód kvůli přepisování metod, ale použitím funkce super() můžeš spustit kód v třídě rodiče i nový kód, který napíšeš ve třídě potomka.

Nejprve jdi k lednici a seber čtyři (4) kusy masa, které budeš používat k vaření. Každé ze čtyř (4) mas je jiného druhu, a to: "pork", "beef", "lamb" a "buffalo".

Jakmile je sebereš, jdi k označení X světlem a vytvoř objekty pro každé maso, aby sis je mohl uvařit a pro každý objekt masa nastav typ masa a stupeň propečení, jak je uvedeno v příkladu:

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

Stupeň propečení je teplota, na kterou chceš, aby bylo maso uvařeno. Nech maso uvařit do následujících stupňů: "pork" uvařené "medium", "beef" uvařené "well done", "buffalo" uvařené "medium rare" a "lamb" uvařené "rare". Na značce X použij funkci cook_meat() potomka po nastavení typu a stupně propečení masa, jak je ukázáno v příkladu výše.

Poté, co bude maso uvařené, jdi k tmavé značce X na žlutém koberci a použij funkci collect(), abys sebral jak "salt", tak "pepper" z komory. Vytvoř seznam s názvem ingredients a umísti do něj oba sebrané ingredience, například: ingredients = ["salt","pepper"].

S těmito dodatečnými ingrediencemi nyní můžeš podávat maso na talířích na stole. Vytvoř seznam pro každé z uvařených mas s následujícími názvy: served_pork, served_beef, served_lamb a served_buffalo. Do těchto seznamů přidej uvařené maso spolu se seznamem ingrediencí vytvořením vnořeného seznamu, například:

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

Jakmile budou seznamy připraveny, jdi k zlatým značkám X a použij funkci place(), aby ses postaral o podávání masa na talířích, které jsou na pultu. Na horní zlaté značce X, otoč se ke stolu, a place(): served_pork a served_buffalo. Na dolní zlaté značce X, otoč se ke stolu, a place(): served_lamb a served_beef. Například: player.place(served_pork). Jakmile budeš mít podáno veškeré maso, úroveň dokončíš.

Kniha Kódu