Fejlett Python fejlesztési tanfolyam
Fejezet
>
Szint
Haladó osztályok
Metódus felülírás
Célkitűzés
Palackozd az olajat, hogy húst főzhess fel objektumok létrehozásával, melyek felülírják a metódusokat.
Van egy kis olaj, amivel zöldségeket főzhetsz, de először palackozni kell, hogy könnyebb legyen a használata. Az osztályok használata és objektumok létrehozása hatékony módszer ennek elérésére, hasonlóan az előző szinthez. Azonban léteznek még hatékonyabb módok is az objektumöröklődés kihasználására egy osztályon belül, például amikor a gyerek osztály felülírja a szülő osztály függvényeit.
# 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)
A fenti kódban a gyerek osztály felülírja a label_bottle() függvényt a szülő osztályban, hogy újraírja a palackok címkéit. Ez lehetővé teszi, hogy aszinkron függvények használatával egyedi üzenetet állíts be.
Kezdetnek gyűjtsd össze a pályán található négy (4) üres palackot, majd miután összegyűjtötted őket, sétálj a sötét X jelhez, és hozz létre objektumokat az osztályok segítségével.
Négy (4) típusú olajat kell palackozni, melyek megfelelnek a gépek előtt található színes szőnyegeknek: az olive_oil-t a sárga szőnyegen, az avocado_oil-t a zöld szőnyegen, a canola_oil-t a kék szőnyegen, és a vegetable_oil-t a piros szőnyegen palackozzuk.
Hozz létre objektumokat az egyes olajokhoz, írd ki a címkéiket, és aktiváld a gyerek osztály label_bottle() és fill_bottle() függvényeit, például:
olive_oil = fill_bottle() olive_oil.label = "Olive Oil" olive_oil.label_bottle() olive_oil.fill_bottle()
Minden címkének az olajok nevét nagy kezdőbetűvel kell tartalmaznia, az alábbiak szerint: "Olive Oil", "Avocado Oil", "Canola Oil" és "Vegetable Oil".
Miután palackoztad az olajokat, sétálj a zsák előtt lévő világos X jelhez, és használd a collect() függvényt az "onion" begyűjtéséhez a zsákból. Ezután sétálj az arany X jelhez, és az olajat használd a hagyma főzéséhez úgy, hogy egy ingredients nevű listában tárolod őket, például így: ingredients = ["Olive Oil", "onion"]. Használd a place() függvényt a lista felhasználásával az összetevők főzéséhez.
Végül helyezd a fennmaradó olajokat egy oils nevű listába, például így: oils = ["Avocado Oil","Canola Oil","Vegetable Oil"]. Sétálj a lila szőnyegen lévő világos X jelhez, fordulj a szekrény felé, és használd a place() függvényt az olajokat tartalmazó lista segítségével, hogy az elemeket a szekrényben tárold, ezzel befejezve a szintet.