Gevorderde Python-ontwikkelingscursus
Hoofdstuk
>
Niveau
Geavanceerde Klassen
Methode overschrijven
Doelstelling
Bottel olie om vlees te koken door objecten te maken met overschreven methoden.
Er is wat olie die je zou kunnen gebruiken om groenten te koken, maar deze moet eerst worden gebotteld voor gebruiksgemak. Het gebruik van klassen en het aanmaken van objecten is een effectieve methode om dit te bereiken, net als in het vorige level. Daarnaast zijn er manieren om objectinherentie binnen een klasse efficiënter te gebruiken, zoals dat de child klasse functies in de parent klasse overschrijft.
# 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)
In bovenstaande code overschrijft de child klasse de functie label_bottle() van de parent klasse om de labels op de flessen opnieuw te schrijven. Dit stelt je ook in staat om met async functies een aangepaste boodschap in te stellen.
Begin met het verzamelen van alle vier (4) lege flessen op het veld. Zodra je ze hebt verzameld, loop je naar de donkere X-tekens en maak je objecten met behulp van de klassen.
Er zijn vier (4) soorten olie die gebotteld moeten worden. Deze komen overeen met de gekleurde tapijten voor de machines: olive_oil wordt gebotteld op het gele tapijt, avocado_oil wordt gebotteld op het groene tapijt, canola_oil wordt gebotteld op het blauwe tapijt en vegetable_oil wordt gebotteld op het rode tapijt.
Maak voor elke olie een object, schrijf het bijbehorende label en activeer de functies label_bottle() en fill_bottle() van de child klasse, bijvoorbeeld:
olive_oil = fill_bottle() ovale_oil.label = "Olive Oil" ovale_oil.label_bottle() ovale_oil.fill_bottle()
Elk van de labels moet de naam van de olie met hoofdletters bevatten, als volgt: "Olive Oil", "Avocado Oil", "Canola Oil" en "Vegetable Oil".
Zodra je de oliën hebt gebotteld, loop je naar het lichte X-teken voor een zak en gebruik je de collect() functie om "onion" uit de zak te pakken. Loop daarna naar het gouden X-teken en gebruik de olie om de ui te koken door beide op te slaan in een lijst genaamd ingredients, als volgt: ingredients = ["Olive Oil", "onion"]. Gebruik de place() functie met de lijst om de ingrediënten te koken.
Plaats tenslotte de resterende oliën in een lijst genaamd oils, als volgt: oils = ["Avocado Oil","Canola Oil","Vegetable Oil"]. Loop naar het lichte X-teken op het paarse tapijt, richt je op de kast en gebruik de place() functie met de olielijst om de items in de kast op te slaan en het level te voltooien.