Προχωρημένο Μάθημα Ανάπτυξης σε Python
Κεφάλαιο
>
Επίπεδο
Προχωρημένες Κλάσεις
Αντικατάσταση Μεθόδου
Στόχος
Αποθήκευσε το λάδι σε μπουκάλια για να μαγειρέψεις κρέας δημιουργώντας αντικείμενα με μεθόδους που έχουν οριστεί εκ νέου.
Υπάρχει κάποιο λάδι που μπορείς να χρησιμοποιήσεις για να μαγειρέψεις μερικά λαχανικά, αλλά πρέπει πρώτα να το αποθηκεύσεις σε μπουκάλια για ευκολία στη χρήση. Η χρήση κλάσεων και η δημιουργία αντικειμένων θα ήταν μια αποτελεσματική μέθοδος για την επίτευξη αυτού, όπως και στο προηγούμενο επίπεδο. Ωστόσο, υπάρχουν και τρόποι να χρησιμοποιήσεις πιο αποτελεσματικά την κληρονομικότητα αντικειμένων μέσα σε μια κλάση, όπως όταν η υποκλάση αντικαθιστά τις συναρτήσεις της γονικής κλάσης.
# 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)
Στον παραπάνω κώδικα, η υποκλάση αντικαθιστά τη συνάρτηση label_bottle() στην γονική κλάση για να επαναγράψει τις ετικέτες των μπουκαλιών. Αυτό επίσης σου επιτρέπει να ορίσεις ένα προσαρμοσμένο μήνυμα χρησιμοποιώντας ασύγχρονες συναρτήσεις.
Για να ξεκινήσεις, πιάσε και τα τέσσερα (4) άδεια μπουκάλια στο πεδίο. Μόλις συλλεχθούν, περπάτα προς τα σκοτεινά σημάδια X και δημιούργησε αντικείμενα χρησιμοποιώντας τις κλάσεις.
Υπάρχουν τέσσερις (4) τύποι λαδιού που πρέπει να αποθηκευτούν σε μπουκάλια, οι οποίοι αντιστοιχούν στα έγχρωμα χαλιά μπροστά από τις μηχανές: olive_oil αποθηκεύεται πάνω στο κίτρινο χαλί, avocado_oil πάνω στο πράσινο χαλί, canola_oil πάνω στο μπλε χαλί, και vegetable_oil πάνω στο κόκκινο χαλί.
Δημιούργησε αντικείμενα για κάθε τύπο λαδιού, γράψε την ετικέτα τους και ενεργοποίησε τις συναρτήσεις της υποκλάσης label_bottle() και fill_bottle(), για παράδειγμα:
olive_oil = fill_bottle() olive_oil.label = "Olive Oil" olive_oil.label_bottle() olive_oil.fill_bottle()
Κάθε ετικέτα θα πρέπει να περιέχει το όνομα του λαδιού με κεφαλαία γράμματα, ως εξής: "Olive Oil", "Avocado Oil", "Canola Oil" και "Vegetable Oil".
Μόλις αποθηκεύσεις τα λάδια σε μπουκάλια, περπάτα προς το ανοιχτό σημάδι X μπροστά από μια σακούλα και χρησιμοποίησε τη συνάρτηση collect() για να πάρεις το "onion" από τη σακούλα. Στη συνέχεια, πήγαινε στο χρυσό σημάδι X και χρησιμοποίησε το λάδι για να μαγειρέψεις το κρεμμύδι, αποθηκεύοντάς τα μαζί σε μια λίστα με όνομα ingredients, ως εξής: ingredients = ["Olive Oil", "onion"]. Χρησιμοποίησε τη συνάρτηση place() με τη λίστα για να μαγειρέψεις τα συστατικά.
Τέλος, τοποθέτησε τα υπόλοιπα λάδια σε μια λίστα με όνομα oils, ως εξής: oils = ["Avocado Oil","Canola Oil","Vegetable Oil"]. Πήγαινε στο ανοιχτό σημάδι X πάνω στο μωβ χαλί, στρέψου προς την ντουλάπα και χρησιμοποίησε τη συνάρτηση place() με τη λίστα λαδιών για να αποθηκεύσεις τα αντικείμενα στην ντουλάπα και να ολοκληρώσεις το επίπεδο.