Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom
Zaawansowane klasy
Przesłanianie metod
Cel
Butelkuj olej, aby ugotować mięso poprzez tworzenie obiektów z przeciążonymi metodami.
Istnieje pewna ilość oleju, którego możesz użyć do gotowania warzyw, ale najpierw musi zostać butelkowany dla ułatwienia użycia. Używanie klas i tworzenie obiektów będzie skuteczną metodą osiągnięcia tego celu, podobnie jak w poprzednim poziomie. Istnieją jednak też sposoby bardziej efektywnego wykorzystania dziedziczenia obiektów w ramach klasy, takie jak nadpisywanie funkcji klasy rodzic przez klasę dziecko.
# 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)
W powyższym kodzie klasa dziecko nadpisuje funkcję label_bottle() z klasy rodzic, aby przepisać etykiety na butelkach. Dzięki temu możesz również ustawić niestandardowy komunikat przy użyciu funkcji asynchronicznych.
Na początek zbierz wszystkie cztery (4) puste butelki znajdujące się na polu, a po ich zebraniu udaj się do ciemnego znaku X i utwórz obiekty, korzystając z klas.
Istnieją cztery (4) rodzaje oleju do butelkowania, które odpowiadają kolorowym dywanikom przed maszynami: olive_oil jest butelkowany na żółtym dywanie, avocado_oil na zielonym, canola_oil na niebieskim, a vegetable_oil na czerwonym.
Utwórz obiekty dla każdego z olejów, napisz ich etykiety i aktywuj funkcje klasy dziecko label_bottle() i fill_bottle(), na przykład:
olive_oil = fill_bottle() olive_oil.label = "Olive Oil" olive_oil.label_bottle() olive_oil.fill_bottle()
Każda etykieta powinna zawierać nazwę oleju zapisaną wielką literą, odpowiednio: "Olive Oil", "Avocado Oil", "Canola Oil" oraz "Vegetable Oil".
Po butelkowaniu olejów udaj się do jasnego znaku X przed workiem i użyj funkcji collect(), aby pobrać "onion" z worka. Następnie udaj się do złotego znaku X i użyj oleju do ugotowania cebuli, umieszczając je razem na liście o nazwie ingredients, w następujący sposób: ingredients = ["Olive Oil", "onion"]. Użyj funkcji place() z tą listą, aby ugotować składniki.
Na koniec umieść pozostałe oleje na liście o nazwie oils, w następujący sposób: oils = ["Avocado Oil","Canola Oil","Vegetable Oil"]. Udaj się do jasnego znaku X na fioletowym dywanie, stan naprzeciw szafki i użyj funkcji place() z listą olejów, aby umieścić przedmioty w szafce i ukończyć poziom.