Coding for KidsCoding for Kids
Livelli CreativiSfideGuida per Insegnanti
Vota per le funzionalità
Corso Avanzato di Sviluppo Python
Capitolo
>
Livello

Classi avanzate
Funzione Super

Obiettivo

Raccogli varie carni, poi cucinale e servile in modi differenti creando oggetti con funzioni super.

Il frigorifero contiene diverse carni che puoi cucinare e servire insieme alle cipolle che hai preparato con l'olio nel livello precedente. Le carni possono essere cucinate in modi diversi e a temperature/rarità differenti; puoi ottenere ciò creando oggetti da classi, proprio come nei livelli precedenti, ma potenziabili usando le Funzioni Super.

La funzione super() viene utilizzata in maniera simile al metodo overriding, la differenza è che, utilizzando questa funzione, puoi eseguire la funzione della classe genitore oltre al tuo codice nella classe figlio, invece di sovrascrivere completamente la funzione.

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

All'interno della funzione della classe figlio cook_meat(), viene usata la funzione super(). Poiché cook_meat() è anche una funzione utilizzata nella classe genitore, la funzione personalizzata normalmente sovrascriverebbe il codice ereditato a causa del method overriding, ma utilizzando la funzione super() puoi eseguire il codice della classe genitore oltre al nuovo codice che scrivi nella classe figlio.

Prima, recati al frigorifero e raccogli i quattro (4) pezzi di carne che utilizzerai per cucinare. Ognuna delle quattro (4) carni è di un tipo diverso, vale a dire: "pork", "beef", "lamb" e "buffalo".

Una volta raccolte, recati al segno a X chiaro e crea oggetti per ciascuna delle carni per cucinarle e, per ogni oggetto carne, imposta il tipo di carne e la rarità con cui desideri cucinarle, per esempio:

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

La rarità rappresenta la temperatura di cottura alla quale desideri che la carne sia cucinata; fai cuocere le carni alle seguenti rarità: "pork" cucinata "medium", "beef" cucinata "well done", "buffalo" cucinata "medium rare" e "lamb" cucinata "rare". Al segno X, utilizza la funzione della classe figlio cook_meat() dopo aver impostato il tipo e la rarità della carne come mostrato nell'esempio sopra.

Una volta che le carni sono state cotte, recati al segno a X scuro sul tappeto giallo e usa la funzione collect() per raccogliere sia "salt" che "pepper" dalla dispensa. Crea una lista chiamata ingredients e inserisci i due ingredienti raccolti, in questo modo: ingredients = ["salt","pepper"].

Con gli ingredienti extra ora puoi servire la carne con i piatti sul tavolo. Crea una lista per ciascuna delle carni cotte con i seguenti nomi: served_pork, served_beef, served_lamb e served_buffalo. Aggiungi a queste liste le carni che hai cotto insieme alla lista degli ingredienti creando una lista nidificata, per esempio:

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

Una volta configurate le liste, recati ai segni a X dorati e usa la funzione place() per servire la carne sui piatti che si trovano sui banconi. Sul segno a X dorato superiore, rivolto verso il tavolo, usa place() per: served_pork e served_buffalo. Sul segno a X dorato inferiore, rivolto verso il tavolo, usa place() per: served_lamb e served_beef. Per esempio: player.place(served_pork), una volta che tutte le carni saranno state servite, avrai completato il livello.

Libro del Codice