Coding for KidsCoding for Kids
Poziomy KreatywneWyzwaniaPrzewodnik dla Nauczycieli
Głosuj na funkcje
Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom

Zaawansowane Klasy
Super Funkcja

Cel

Zbierz różne rodzaje mięsa, następnie ugotuj je i podaj na różne sposoby, tworząc obiekty z wykorzystaniem super funkcji.

Lodówka zawiera różne rodzaje mięsa, które możesz ugotować i podać z cebulą, którą przygotowałeś z olejem w poprzednim poziomie. Mięsa można gotować na różne sposoby i do różnych temperatur/stopni wysmażenia. Możesz to osiągnąć, tworząc obiekty na podstawie klas, podobnie jak w poprzednich poziomach, ale można to ulepszyć za pomocą Super Funkcji.

Funkcja super() jest używana w podobny sposób jak nadpisywanie metod, różnica polega na tym, że dzięki tej funkcji możesz uruchomić funkcję klasy rodzica oprócz własnego kodu w klasie dziecka, zamiast całkowicie nadpisywać funkcję.

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

Wewnątrz funkcji klasy dziecka cook_meat() używana jest funkcja super(). Ponieważ cook_meat() jest również funkcją używaną w klasie rodzica, niestandardowa funkcja normalnie nadpisałaby dziedziczony kod z powodu nadpisywania metod, ale dzięki użyciu funkcji super() możesz wykonać kod z klasy rodzica jak również nowy kod, który napiszesz w klasie dziecka.

Najpierw udaj się do lodówki i zbierz cztery (4) kawałki mięsa, których będziesz używać do gotowania. Każde z tych czterech mięs ma inny rodzaj, mianowicie: "pork", "beef", "lamb" oraz "buffalo".

Po zebraniu, udaj się do jasnego znaku X i stwórz obiekty dla każdego z mięs w celu ich ugotowania, a dla każdego obiektu mięsa ustaw typ mięsa i stopień wysmażenia, jaki chcesz osiągnąć, na przykład:

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

Stopień wysmażenia to temperatura, przy której chciałbyś ugotować mięso. Ugotuj mięsa do następujących stopni: "pork" ugotowane na "medium", "beef" ugotowane na "well done", "buffalo" ugotowane na "medium rare", a "lamb" ugotowane na "rare". Na znaku X użyj funkcji cook_meat() z klasy dziecka po ustawieniu typu i stopnia wysmażenia mięsa, jak pokazano w powyższym przykładzie.

Po ugotowaniu mięs udaj się do ciemnego znaku X na żółtym dywanie i użyj funkcji collect(), aby pobrać zarówno "salt" jak i "pepper" z spiżarni. Utwórz listę o nazwie ingredients i umieść w niej dwa pobrane składniki, na przykład: ingredients = ["salt","pepper"].

Dzięki dodatkowym składnikom możesz teraz podać mięso na talerzach, które znajdują się na stole. Utwórz listę dla każdego ugotowanego mięsa o następujących nazwach: served_pork, served_beef, served_lamb oraz served_buffalo. Dodaj do tych list ugotowane mięsa wraz z listą składników, tworząc listę zagnieżdżoną, na przykład:

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

Po skonfigurowaniu list udaj się do złotych znaków X i użyj funkcji place(), aby podać mięso na talerzach znajdujących się na ladach. Na górnym złotym znaku X, zwróć się w stronę stołu, wykonaj place() na: served_pork oraz served_buffalo. Na dolnym złotym znaku X, zwróć się w stronę stołu, wykonaj place() na: served_lamb oraz served_beef. Na przykład: player.place(served_pork), a gdy wszystkie mięsa zostaną podane, ukończysz poziom.

Księga Kodów