Edistynyt Python-kehityskurssi
Luku
>
Taso
Edistyneet luokat
Superfunktio
Tavoite
Kerää erilaisia lihoja, kypsennä ja tarjoile niitä eri tavoin luomalla objekteja super-funktioiden avulla.
Jääkaapissa on erilaisia lihoja, joita voit kypsentää ja tarjoilla sipulien kanssa, jotka valmistit öljyllä edellisellä tasolla. Lihat voidaan kypsentää eri tavoilla ja eri lämpötiloihin/kypsyystasoihin. Tämä onnistuu luomalla objekteja luokista aivan kuten edellisillä tasoilla, mutta niitä voi tehostaa käyttämällä Super Funktioita.
super()-funktiota käytetään samankaltaisesti kuin menetelmien ylikirjoittamista. Ero on siinä, että tämän funktion avulla voit suorittaa vanhemman luokan funktion oman koodisi lisäksi lapsi-luokassa sen sijaan, että ylikirjoittaisit funktion kokonaan.
# 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)
Lapsiluokan funktiossa cook_meat() käytetään super()-funktiota. Koska cook_meat() on myös funktio, jota käytetään vanhemman luokassa, mukautettu funktio normaalisti ylikirjoittaisi perityn koodin menetelmien ylikirjoittamisen vuoksi, mutta käyttämällä super()-funktiota voit suorittaa koodia vanhemman luokassa sekä uuden koodin, jonka kirjoitat lapsi-luokassa.
Kävele ensin jääkaapille ja poimi neljä (4) lihapalaa, joita aiot käyttää ruoanlaittossa. Jokainen neljästä (4) lihasta on erilaista tyyppiä, nimittäin: "pork", "beef", "lamb" ja "buffalo".
Kun olet kerännyt ne, kävele valoisalle X-merkkipisteelle ja luo kullekin lihalle oma objekti, jotta voit kypsentää niitä. Määritä jokaiselle lihaobjektille lihan tyyppi ja haluamasi kypsyystaso, esimerkiksi:
pork_meat = ready_meat() pork_meat.type = "pork" pork_meat.rarity = "medium" pork_meat.cook_meat()
Kypsyystaso tarkoittaa sitä kypsennysastea, johon haluat lihan kypsennettävän. Kypsennä lihat seuraaviin kypsyystasoihin: "pork" kypsennetty "medium", "beef" kypsennetty "well done", "buffalo" kypsennetty "medium rare" ja "lamb" kypsennetty "rare". X-merkillä käytä lapsiluokan funktiota cook_meat() sen jälkeen, kun olet asettanut lihan tyypin ja kypsyystason kuten yllä olevassa esimerkissä.
Kun lihat on kypsennetty, kävele tummalle X-merkillä varustetulle keltaiselle matolle ja käytä collect()-funktiota kerätäksesi sekä "salt" että "pepper" ruokakaapista. Luo lista nimeltä ingredients ja lisää siihen keräämäsi kaksi ainesosaa, esimerkiksi: ingredients = ["salt","pepper"].
Lisäainesosien avulla voit nyt tarjoilla lihan lautasilla pöydässä. Luo lista jokaiselle kypsennetylle lihalle seuraavilla nimillä: served_pork, served_beef, served_lamb ja served_buffalo. Lisää näihin listoihin kypsennetyt lihat ainesosalistan kanssa luomalla sisäkkäinen lista, esimerkiksi:
served_pork = [] served_pork.append("cooked pork") served_pork.append(ingredients)
Kun listat on asetettu, kävele kultaisille X-merkkeille ja käytä place()-funktiota tarjoillaksesi lihan lautasille, jotka ovat tiskillä. Yläpuolella kultaisella X-merkillä, pöytää vasten, place() seuraavat: served_pork ja served_buffalo. Alapuolella kultaisella X-merkillä, pöytää vasten, place() seuraavat: served_lamb ja served_beef. Esimerkiksi: player.place(served_pork). Kun kaikki lihat on tarjoiltu, olet suorittanut tason.