Curs Avansat de Dezvoltare Python
Capitolul
>
Nivel
Clase Avansate
Suprascrierea Metodelor
Obiectiv
Îmbuteliază uleiul pentru a găti carnea creând obiecte cu metode suprascrise.
Există un pic de ulei pe care l-ai putea folosi pentru a găti niște legume, dar acesta trebuie îmbuteliat mai întâi pentru a fi mai ușor de utilizat. Utilizarea claselor și crearea de obiecte ar fi o metodă eficientă de a realiza acest lucru, la fel ca în nivelul anterior. Cu toate acestea, există și modalități de a utiliza mai eficient moștenirea obiectelor într-o clasă, de exemplu prin suprascrierea funcțiilor din clasa părinte de către clasa copil.
# 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)
În codul de mai sus, clasa copil suprascrie funcția label_bottle() din clasa părinte pentru a rescrie etichetele de pe sticle. Acest lucru îți permite, de asemenea, să setezi un mesaj personalizat folosind funcții async.
Pentru început, adună toate cele patru (4) sticle goale de pe câmp, apoi, odată adunate, mergi la semnele X întunecate și creează obiecte folosind clasele.
Există patru (4) tipuri de ulei de îmbuteliat, care corespund cu covoarele colorate din fața mașinilor: olive_oil este îmbuteliat pe covorul galben, avocado_oil este îmbuteliat pe covorul verde, canola_oil este îmbuteliat pe covorul albastru, iar vegetable_oil este îmbuteliat pe covorul roșu.
Crează obiecte pentru fiecare dintre uleiuri, scrie eticheta lor și activează funcțiile clasei copil label_bottle() și fill_bottle(), de exemplu:
olive_oil = fill_bottle() olive_oil.label = "Olive Oil" oliv_oil.label_bottle() oliv_oil.fill_bottle()
Fiecare dintre etichete ar trebui să conțină numele fiecărui ulei cu prima literă mare, după cum urmează: "Olive Oil", "Avocado Oil", "Canola Oil" și "Vegetable Oil".
Odată ce ai îmbuteliat uleiurile, mergi către semnul X luminos din fața unui sac și folosește funcția collect() pentru a lua "onion" din sac. Ulterior, mergi la semnul X auriu și folosește uleiul pentru a găti ceapa, stocându-le împreună într-o listă numită ingredients, astfel: ingredients = ["Olive Oil", "onion"]. Folosește funcția place() cu lista pentru a găti ingredientele.
În final, plasează uleiurile rămase într-o listă numită oils, astfel: oils = ["Avocado Oil","Canola Oil","Vegetable Oil"]. Mergi la semnul X luminos de pe covorul mov, înfruntă dulapul și folosește funcția place() cu lista de ulei pentru a depozita obiectele în dulap și pentru a finaliza nivelul.