Edistynyt Python-kehityskurssi
Luku
>
Taso
Edistyneet luokat
Olioiden periytyminen
Tässä luvussa tutkimme, kuinka saada luokista kaikki irti oppimalla erilaisia tekniikoita ja luokkoihin liittyviä funktioita, jotka voivat laajentaa objektien kyvykkyyksiä Pythonissa.
Tällä tasolla opimme yhdestä luokkien merkittävimmistä laajennetuista ominaisuuksista, objektien perinnästä. Tämä ominaisuus sallii meidän luoda luokan, joka perii funktiot toisesta luokasta, jolloin voimme luoda dynaamisempia objekteja säilyttäen kuitenkin ydinominaisuuksien joukon.

Tavoite
Täytä ja varastoi viinipulloja käyttämällä objektiperintää luokkiesi avulla.
Tämä huone on tarkoitettu viinipullojen täyttämiseen, sillä on vielä muutama pullo, jotka täytyy täyttää ja pakata. Tämä saavutetaan parhaiten käyttämällä luokkia. Luokat mahdollistavat objektien luomisen, joilla voi olla erilaisia ominaisuuksia, tässä tapauksessa erilaisia viinipulloja. Luokkien avulla luodut objektit voivat periä ominaisuuksia toisiltaan; tällaisia kutsutaan lapsiluokiksi, kun taas luokkia, joita käytetään pohjana uusien luokkien luomisessa, kutsutaan yläluokiksi.
# Parent Class
class wine_bottle:
color = ""
def set_bottle(self):
player.place("empty bottle")
# Child Class
class fill_bottle(wine_bottle):
def fill_bottle(self):
player.combine(["empty bottle", self.color + " wine"])
player.speak("The bottle's color is: %s" % self.color)
player.collect(self.color + "bottle")
Käytössä on kaksi (2) luokkaa; yläluokkaa käytetään pullon asettamiseen tynnyrin eteen täytettäväksi, ja lapsiluokkaa käytetään viinipullojen yhdistämiseen ja määrittämiseen. Lapsiluokka perii yläluokan ominaisuudet, mikä mahdollistaa pullovariaatioiden luomisen ilman liiallista vaivaa.
Kävele ensin ja kerää kartan yläosasta neljä (4) tyhjää pulloa. Kun olet kerännyt ne, suuntaa tummilla X-merkinnöillä varustettujen, värillisten mattojen luokse ja kohtaa tynnyriannostelijat. Alueella on neljä (4) värillistä mattoa, jotka edustavat sitä viinin väriä, jonka sinun tulee luoda kyseisellä alueella, nämä ovat: "green", "blue", "purple" ja "yellow".
Tummien X-merkintöjen kohdalla luo objekti käyttämällä lapsiluokkaa, esimerkiksi: green_bottle = fill_bottle(). Nimeä objekti sen pullon mukaan, jota yrität luoda, ja kun se on valmis, aseta objektin väri ja aktivoi sen funktiot.
# Green bottle setup green_bottle.color = "green" green_bottle.set_bottle() green_bottle.fill_bottle()
Tee tämä kaikille neljälle (4) viinipullolle niiden omilla X-merkinnöillä. Kun ne on kaikki asetettu ja pullot on kerätty, kävele vaalean X-merkin luo ja avaa viinikellarin ovi käyttämällä open()-funktiota, esimerkiksi: player.open(). Seuraavaksi kävele kullanvärisen X-merkin luo tallentaaksesi luomasi pullot viinikellarille.
Aseta kaikki pullot listaan, jonka nimi on bottles, ja viinikellarin edessä käyttäen place()-funktiota tallenna lista tasoosuuden suorittamiseksi. Keräät neljä (4) pulloa: "green bottle", "blue bottle", "purple bottle" ja "yellow bottle".