Corso Avanzato di Sviluppo Python
Capitolo
>
Livello
Classi avanzate
Sovrascrittura del metodo
Obiettivo
Imbottiglia l'olio per cucinare la carne creando oggetti con metodi sovrascritti.
C'è dell'olio che puoi usare per cucinare delle verdure, ma prima deve essere imbottigliato per facilitarne l'uso. Utilizzare classi e creare oggetti sarebbe un metodo efficace per ottenere ciò, proprio come nel livello precedente. Detto questo, esistono anche modi per utilizzare in modo più efficace l'ereditarietà degli oggetti all'interno di una classe, come ad esempio far sì che la classe child sovrascriva le funzioni della classe parent.
# 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)
Nel codice sopra la classe child sovrascrive la funzione label_bottle() della classe parent per riscrivere le etichette delle bottiglie. Questo permette anche di impostare un messaggio personalizzato usando funzioni async.
Per iniziare, prendi tutte e quattro (4) bottiglie vuote presenti sul campo; una volta raccolte, dirigiti verso le X scure e crea oggetti utilizzando le classi.
Ci sono quattro (4) tipi di olio da imbottigliare, che corrispondono ai tappeti colorati davanti alle macchine: olive_oil viene imbottigliato sul tappeto giallo, avocado_oil viene imbottigliato sul tappeto verde, canola_oil viene imbottigliato sul tappeto blu e vegetable_oil viene imbottigliato sul tappeto rosso.
Crea oggetti per ciascuno degli oli, imposta la loro etichetta e attiva le funzioni della classe child label_bottle() e fill_bottle(), per esempio:
olive_oil = fill_bottle() olive_oil.label = "Olive Oil" olive_oil.label_bottle() olive_oil.fill_bottle()
Ognuna delle etichette deve contenere il nome capitalizzato di ciascun olio, come segue: "Olive Oil", "Avocado Oil", "Canola Oil" e "Vegetable Oil".
Una volta imbottigliati gli oli, dirigiti verso la X chiara di fronte a un sacco e utilizza la funzione collect() per prelevare "onion" dal sacco. Successivamente, vai verso la X dorata e usa l'olio per cucinare la cipolla, inserendoli insieme in una lista chiamata ingredients, in questo modo: ingredients = ["Olive Oil", "onion"]. Utilizza la funzione place() con la lista per cucinare gli ingredienti.
Infine, disponi gli oli rimanenti in una lista chiamata oils, in questo modo: oils = ["Avocado Oil","Canola Oil","Vegetable Oil"]. Dirigiti verso la X chiara sul tappeto viola, fronteggia l'armadio e usa la funzione place() con la lista degli oli per riporre gli oggetti nell'armadio e completare il livello.