Coding for KidsCoding for Kids
Niveluri CreativeProvocăriGhid pentru Profesori
Votează pentru funcții
Curs Avansat de Dezvoltare Python
Capitolul
>
Nivel

Clase Avansate
Funcție Super

Obiectiv

Adună diverse tipuri de carne, apoi gătește-le și servește-le în moduri diferite prin crearea de obiecte cu funcții super.

Frigiderul conține diverse tipuri de carne pe care le poți găti și servi împreună cu ceapa pe care ai pregătit-o cu ulei în nivelul anterior. Carnurile pot fi gătite în moduri diferite și la temperaturi/rarități variate; poți realiza acest lucru prin crearea de obiecte din clase, la fel ca în nivelurile anterioare, dar cu posibilitatea de a fi îmbunătățite folosind Funcții Super.

Funcția super() este folosită într-un mod similar cu suprascrierea metodelor, diferența fiind că, folosind această funcție, poți rula funcția clasei părinte, pe lângă codul propriu scris în clasa copil, în loc să suprascrii complet funcția.

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

În interiorul funcției clasei copil cook_meat(), se folosește funcția super(). Deoarece cook_meat() este de asemenea o funcție din clasa părinte, funcția personalizată ar suprascrie, în mod normal, codul moștenit datorită suprascrierii metodelor, dar folosind funcția super() poți executa codul din clasa părinte, precum și noul cod pe care îl scrii în clasa copil.

Începe prin a merge la frigider și adună cele patru (4) bucăți de carne pe care urmează să le gătești. Fiecare dintre cele patru (4) tipuri de carne este de un tip diferit, acestea fiind: "pork", "beef", "lamb" și "buffalo".

După ce le-ai adunat, mergi către semnul X luminos și creează obiecte pentru fiecare tip de carne pentru a le găti; pentru fiecare obiect de carne, setează tipul de carne și raritatea la care dorești să o gătești, de exemplu:

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

Raritatea reprezintă temperatura la care dorești să gătești carnea; pregătește carnea la următoarele rarități: "pork" gătită "medium", "beef" gătită "well done", "buffalo" gătită "medium rare" și "lamb" gătită "rare". La semnul X, folosește funcția cook_meat() a clasei copil după ce ai setat tipul și raritatea cărnii, așa cum se arată în exemplul de mai sus.

Odată ce carnea a fost gătită, mergi la semnul X întunecat de pe covorul galben și folosește funcția collect() pentru a lua atât "salt", cât și "pepper" din cămară. Creează o listă numită ingredients și plasează cele două ingrediente adunate, astfel: ingredients = ["salt","pepper"].

Cu ingredientele suplimentare, acum poți servi carnea pe farfurii de pe masă. Creează o listă pentru fiecare tip de carne gătită cu următoarele nume: served_pork, served_beef, served_lamb și served_buffalo. Adaugă în aceste liste carnea gătită împreună cu lista de ingrediente prin crearea unei liste imbricate, de exemplu:

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

Odată ce listele au fost configurate, mergi la semnele X de culoare auriu și folosește funcția place() pentru a servi carnea pe farfurii aflate pe tejghea. La semnul X auriu de sus, cu fața spre masă, place() carnea: served_pork și served_buffalo. La semnul X auriu de jos, cu fața spre masă, place() carnea: served_lamb și served_beef. De exemplu: player.place(served_pork), iar odată ce toate carnea sunt servite, vei finaliza nivelul.

Carte de Cod