Kursus Pembangunan Python Lanjutan
Bab
>
Tahap
Kelas Lanjutan
Fungsi Super
Objektif
Kumpulkan pelbagai daging kemudian masak dan hidangkan dengan cara yang berbeza dengan mencipta objek menggunakan fungsi super.
Kulkas mempunyai pelbagai daging yang anda boleh masak dan hidangkan bersama bawang yang telah anda sediakan dengan minyak di peringkat sebelumnya. Daging-daging tersebut boleh dimasak dengan pelbagai cara dan pada suhu/keistimewaan yang berlainan; anda boleh mencapainya dengan mencipta objek daripada kelas, sama seperti di peringkat sebelum ini tetapi boleh ditingkatkan dengan menggunakan Fungsi Super.
Fungsi super() digunakan dengan cara yang serupa dengan overriding metode, perbezaannya ialah dengan menggunakan fungsi ini anda boleh menjalankan fungsi kelas induk selain kod anda sendiri dalam kelas anak bukannya menggantikan fungsi sepenuhnya.
# 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)
Di dalam fungsi kelas anak cook_meat(), fungsi super() digunakan. Oleh kerana cook_meat() juga merupakan fungsi yang digunakan dalam kelas induk, fungsi tersuai biasanya akan menggantikan kod yang diwarisi disebabkan oleh overriding metode tetapi dengan menggunakan fungsi super() anda boleh menjalankan kod dalam kelas induk serta kod baru yang anda tulis dalam kelas anak.
Pertama, berjalan ke kulkas dan ambil empat (4) keping daging yang akan anda gunakan untuk memasak. Setiap satu daripada empat (4) daging itu adalah jenis yang berbeza, iaitu: "pork", "beef", "lamb" dan "buffalo".
Setelah dikumpulkan, berjalan ke tanda X yang ringan dan cipta objek bagi setiap daging untuk memasaknya serta untuk setiap objek daging, tetapkan jenis daging dan keistimewaan yang anda ingin masak, sebagai contoh:
pork_meat = ready_meat() pork_meat.type = "pork" pork_meat.rarity = "medium" pork_meat.cook_meat()
Keistimewaan adalah suhu memasak yang anda inginkan untuk daging dimasak, masak daging-daging tersebut sehingga mencapai keistimewaan berikut: "pork" dimasak "medium", "beef" dimasak "well done", "buffalo" dimasak "medium rare", dan "lamb" dimasak "rare". Di tanda X, gunakan fungsi kelas anak cook_meat() selepas menetapkan jenis dan keistimewaan daging seperti yang ditunjukkan dalam contoh di atas.
Setelah daging dimasak, berjalan ke tanda X gelap di atas permaidani kuning dan gunakan fungsi collect() untuk mengambil kedua-dua "salt" dan "pepper" dari pantri. Cipta senarai bernama ingredients dan letakkan kedua-dua bahan yang diambil, seperti berikut: ingredients = ["salt","pepper"].
Dengan bahan tambahan itu, anda kini boleh menghidangkan daging tersebut dengan pinggan di atas meja. Cipta senarai bagi setiap daging yang telah dimasak dengan nama seperti berikut: served_pork, served_beef, served_lamb dan served_buffalo. Tambahkan ke senarai-senarai ini daging yang telah dimasak bersama senarai bahan dengan mencipta sebuah nested list, sebagai contoh:
served_pork = [] served_pork.append("cooked pork") served_pork.append(ingredients)
Setelah senarai disediakan, berjalan ke tanda X emas dan gunakan fungsi place() untuk menghidangkan daging pada pinggan yang ada di atas kaunter. Pada tanda X emas atas, hadap ke meja, place(): served_pork dan served_buffalo. Pada tanda X emas bawah, hadap ke meja, place(): served_lamb dan served_beef. Contohnya: player.place(served_pork), setelah semua daging dihidangkan, anda akan menyelesaikan peringkat ini.