Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat
Kelas Lanjutan
Penimpaan Metode
Objective
Botol minyak untuk memasak daging dengan membuat objek yang memiliki metode override.
Ada beberapa minyak yang dapat kamu gunakan untuk memasak sayuran, namun minyak tersebut perlu dibotol terlebih dahulu untuk memudahkan penggunaan. Menggunakan kelas dan membuat objek akan menjadi metode yang efektif untuk menyelesaikan masalah ini, seperti pada level sebelumnya. Namun demikian, ada juga cara yang lebih efektif dalam menggunakan pewarisan objek dalam sebuah kelas, misalnya dengan membuat kelas child mengoverride fungsi-fungsi yang ada di kelas 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)
Pada kode di atas, kelas child mengoverride fungsi label_bottle() pada kelas parent untuk menulis ulang label pada botol-botol. Hal ini juga memungkinkan kamu untuk menetapkan pesan khusus menggunakan fungsi async.
Untuk memulai, ambil semua empat (4) botol kosong yang berada di lapangan, setelah dikumpulkan, berjalanlah ke tanda X yang gelap dan buat objek menggunakan kelas-kelas tersebut.
Terdapat empat (4) jenis minyak yang harus dibotolkan, yang sesuai dengan karpet berwarna di depan mesin: olive_oil dibotolkan di karpet kuning, avocado_oil dibotolkan di karpet hijau, canola_oil dibotolkan di karpet biru, dan vegetable_oil dibotolkan di karpet merah.
Buat objek untuk masing-masing minyak, tulislah labelnya dan aktifkan fungsi-fungsi pada kelas child label_bottle() dan fill_bottle(), contohnya:
olive_oil = fill_bottle() olive_oil.label = "Olive Oil" olive_oil.label_bottle() olive_oil.fill_bottle()
Setiap label harus berisi nama minyak dengan huruf kapital sebagai berikut: "Olive Oil", "Avocado Oil", "Canola Oil" dan "Vegetable Oil".
Setelah kamu membotolkan minyaknya, berjalanlah ke tanda X yang terang di depan karung dan gunakan fungsi collect() untuk mengambil "onion" dari karung tersebut. Setelah itu, berjalanlah ke tanda X berwarna emas dan gunakan minyak tersebut untuk memasak bawang dengan menyimpannya bersama ke dalam sebuah list bernama ingredients, seperti ini: ingredients = ["Olive Oil", "onion"]. Gunakan fungsi place() dengan list tersebut untuk memasak bahan-bahan.
Terakhir, tempatkan sisa minyak ke dalam list bernama oils, seperti ini: oils = ["Avocado Oil","Canola Oil","Vegetable Oil"]. Berjalanlah ke tanda X yang terang di atas karpet ungu, hadapi lemari, dan gunakan fungsi place() dengan list minyak tersebut untuk menyimpan barang-barang di dalam lemari dan menyelesaikan level.