Kohdekielisellä kielellä luokka on laajennettavissa oleva koodikappale, joka edustaa mallia kyseisen luokan objektien luomiseen ja käyttämiseen. Luokan objekti viittaa yksinkertaisesti määritetyn luokan esiintymään.

Python-luokan perusteet

Python-ohjelmointikielellä jokainen tieto on esitetty jonkin luokan esiintymänä. Jos et tunne kieltä, katso meidän aloittelijan opas Pythoniin ennen kuin jatkat.

Luokka tarjoaa joukon käyttäytymismuotoja jäsenfunktioiden muodossa (tunnetaan myös nimellä menetelmät), jolla on yhteisiä toteutuksia kaikki kyseisen luokan esiintymät, ja se määrittää myös tavan, jolla sen esiintymän tilatiedot esitetään muodossa määritteet.

Lue lisää: Luokkamenetelmät Pythonissa: tärkeät erot

Alla oleva koodi edustaa esimerkkiä määritetystä luokasta Pythonissa. Koodissa määritelty luokka tarjoaa RaceCar-luokan toteutuksen.

Jokainen luokan esiintymä tarjoaa yksinkertaisen mallin eri automerkkeille ja sisältää seuraavan tilan Tiedot: auton nimi, kuljettajan nimi, auton rekisterinumero, nykyinen nopeus, ylinopeus ja väri.

instagram viewer

Tämä autoluokka mallitsee jokaisessa autossa erityisen anturin, joka kirjaa 50 dollarin sakon auton kuljettajaa vastaan, jos hän ylittää laillisen nopeusrajoituksen 140 mailia tunnissa.

Esimerkki luokasta (autoluokka)


luokan auto:
#Rakentaja
#thet-menetelmä on vastuussa luokan #muuttujien arvojen alustamisesta.
def __init __ (itse, auton_nimi, kuljettajan_nimi, lisenssin_numero,
nykyinen_nopeus, ylinopeus_lataus, väri):
itse.auton_nimi = auton_nimi
itse.ajurin_nimi = kuljettajan_nimi
self._license_plate_number = lisenssin_plate_numero
self._current_speed = current_speed
self._speeding_charge = ylinopeus
itse ._väri = väri
#Accessor-menetelmät
#Get_car_name-menetelmä palauttaa auton nimen
def get_car_name (itse):
palauta self._car_name
#Get_driver_name-menetelmä palauttaa ohjaimen nimen
def get_ajurin_nimi (itse):
palauta itse.ajurin_nimi
#Get_license_plate-menetelmä palauttaa auton rekisterikilven
def get_license_plate (itse):
palauta self._license_plate
#Get_current_speed-menetelmä palauttaa nykyisen nopeuden, jolla auto liikkuu
def get_current_speed (itse):
palaa itse. nykyinen_nopeus
#Get_speeding_charge-menetelmä palauttaa kokonaissumman, jonka
#ajurin on maksettava ylinopeudesta
def get_speeding_charge (itse):
return self._speeding_charge
#Get_colour-menetelmä palauttaa suloisen ajon värin!
def get_colour (itse):
palaa itse ._väri
#Mutaattorimenetelmät
#Set_driver-arvo muuttaa automme kuljettajaa.
def set_driver (itse, uusi_ajuri):
itse.ajurin_nimi = uusi_ajuri
# Speeding_ticket-menetelmä varmistaa, että kuljettajalta veloitetaan 50 taalaa, kun # hän havaitsee ylinopeuden yli 140 mailia tunnissa :(
def speeding_ticket (itse, nykyinen_nopeus):
jos virta-nopeus <= 140:
palauta False
muu:
itse. nopeuden_varaus + = 50
palaa True
#Make_maksutapa varmistaa, että kuljettaja pystyy maksamaan kaikesta #määrästä, jonka hän on velkaa ylinopeuden lippumaksuista.
def make_payment (itse, summa_maksettu):
self._speeding_charge - = summa_maksettu

Selitys Python-luokan esimerkistä

"Itse" -parametri

Ensinnäkin on huomattava, että luokassa ilmoitetun metodin allekirjoituksen ja metodin allekirjoituksen välillä, jota ohjelmoija käyttää funktion kutsumiseen, on ero. Esimerkiksi get_colour luokassa määritelty menetelmä ottaa yhden parametrin, joka on itse parametri.

Kun ohjelmoija kutsuu tätä menetelmää luokan esiintymään, hän ei kuitenkaan anna mitään parametreja. Tämä sama ilmiö voidaan havaita speeding_ticket-menetelmässä, joka on määritelty ottamaan kaksi parametria luokassa (eli itse ja current_speed), mutta ohjelmoija pystyy suorittamaan tämän menetelmän toimittamalla arvon vain ”current_speed” parametri.

Tämä johtuu siitä, että tarjotun "itse" -parametrin tarkoituksena on sitoa menetelmä siihen objektin ilmentymään, johon sitä kutsuttiin, eikä se ole ohjelmoijan antama arvo.

Rakentaja

Luokan rakentaja viittaa luokan menetelmään, johon käyttäjä voi soittaa luodakseen kyseisen luokan objektin esiintymän. Auto-luokassa käyttäjä voi luoda objektin esiintymän seuraavalla syntaksilla:

#luomme oman Bugattimme :)
Auto ("Bugatti", "David Sasu", 90828, 0, 0, "Cherry Red")

Tämän koodin suorittaminen johtaa __init__-menetelmän kutsumiseen autoluokassa. Tämän menetelmän vastuulla on luoda uusi luoto-autoobjekti annettujen ilmentymien arvojen kanssa. Jokainen Car-luokan esine koostuu kuudesta esiintymämuuttujasta, jotka ovat:

  • _auton_nimi
  • _ajurin_nimi
  • _rekisterikilpi
  • _nykyinen nopeus
  • _nopeuden_lataus
  • _väri

Accessor-menetelmät

Nämä ovat menetelmiä, jotka on kirjoitettu objektin ilmentymän tilatietojen saamiseksi. Autoluokassa kirjoitetut lisämenetelmät ovat:

  • get_car_name
  • get_driver_name
  • get_license_plate
  • get_current_speed
  • get_speeding_charge
  • get_colour

Mutaattorimenetelmät:

Nämä ovat menetelmiä, jotka on kirjoitettu muuttamaan objektin ilmentymän tilatietoja. Autoluokassa kirjoitetut mutaattorimenetelmät ovat:

  • set_driver
  • ylinopeussakko
  • maksaa

Kapseloinnin käsite

”Kapselointi” on termi, jota käytetään kuvaamaan olio-suuntautuneen suunnittelun periaatetta, jossa ohjelman komponenttien ei pitäisi paljastaa toteutustensa sisäisiä yksityiskohtia. Jos haluat lisätä ymmärrystäsi kapseloinnin käsitteestä, katso sivu artikkeli kapseloinnista.

Virhe tarkistettaessa

Autoluokan toteutus ei ole vankkaa, koska se todennäköisesti kaatuu tai toimii virheellisesti riippuen ohjelmoijan saamasta syötteestä.

Ensin on huomattava, että emme tarkista speeding_ticket- ja make_payment-menetelmien parametrien tyyppejä, emmekä myöskään tarkista rakentajan minkään parametrin tyyppejä. Tämä voi johtaa ohjelman kaatumiseen, jos käyttäjä antaa argumentin, jota ei odotettu. Esimerkiksi, jos käyttäjä soittaa puhelun, kuten speeding_ticket ("sirut ahoy"), ohjelma kaatuu, koska menetelmä, jonka menetelmä odotti, oli kokonaisluku eikä merkkijono.

Nyt ymmärrät Python-luokan perusteet

Tässä artikkelissa olet tutustunut Python-luokan ja Python-luokan objektin käsitteeseen. Sinulle on myös esitelty ideoita, joihin python-luokka rakennetaan, kuten kapselointi, 'itsetunniste', käyttöoikeusmenetelmät ja mutatointimenetelmät.

Näiden tietojen avulla sinun pitäisi pystyä luomaan yksinkertainen Python-luokka itse ja testata sitä :)

Sähköposti
WhatsApp panee täytäntöön biometrisen todennuksen työpöydälle ja verkkoon

Nyt sinun on vahvistettava henkilöllisyytesi mobiililaitteellasi linkittääksesi tilisi työpöydälle ja verkkosovellukseen.

Liittyvät aiheet
  • Ohjelmointi
  • Python
Kirjailijasta
David Sasu (1 artikkelia julkaistu)Lisää artistilta David Sasu

Tilaa uutiskirjeemme

Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja erikoistarjouksia!

Vielä yksi askel !!!

Vahvista sähköpostiosoitteesi juuri lähettämässämme sähköpostissa.

.