Objektorienteeritud keeles on klass laiendatav koodijupp, mis tähistab malli selle klassi objektide loomiseks ja kasutamiseks. Klassi objekt viitab lihtsalt määratletud klassi eksemplarile.

Pythoni klassi põhitõed

Pythoni programmeerimiskeeles on kõik andmed kujutatud mõne klassi eksemplarina. Kui keel pole teile tuttav, vaadake meie lehte Pythoni algajate juhend enne edasi liikumist.

Klass pakub käitumisviiside komplekti liikme funktsioonide kujul (tuntud ka kui meetodid), millel on rakendusi, mis on ühised kõik selle klassi eksemplarid ja see määrab ka viisi, kuidas selle eksemplari olekuteave vormis esitatakse atribuudid.

Loe rohkem: Klassimeetodid Pythonis: olulised erinevused

Allolev kood tähistab Pythonis määratletud klassi näidet. Koodis määratletud klass pakub RaceCari klassi rakendamist.

Iga klassi eksemplar pakub lihtsat mudelit eri markide autodele ja sisaldab järgmist olekut teave: auto nimi, juhi nimi, auto numbrimärk, praegune kiirus, kiiruse ületamise tasu ja värv.

See autoklass modelleerib igas autos spetsiaalse anduri, mis maksab auto juhile 50 dollari suuruse trahvi, kui ta ületab seaduses lubatud kiiruse 140 miili tunnis.

Klassinäide (autoklass)


klassi auto:
#Konstruktor
Meetod # init vastutab klassi eksemplari # muutujate väärtuste lähtestamise eest.
def __init __ (ise, auto_nimi, juhi_nimi, litsentsi_number,
voolu kiirus, kiiruse ületamine, värv):
ise.auto_nimi = auto_nimi
ise.juhi_nimi = draiveri nimi
self._license_plate_number = litsentsi_plate_number
self._current_speed = current_speed
self._speeding_charge = kiiruse ületamine
ise.värv = värv
#Accessor meetodid
# Meetod get_car_name tagastab auto nime
def get_car_name (ise):
tagastage ise.auto_nimi
# Meetod get_driver_name tagastab draiveri nime
def get_driver_name (ise):
tagastage ise.juhi_nimi
# Meetod get_license_plate tagastab auto numbrimärgi
def get_license_plate (ise):
tagastage self._license_plate
Meetod # get_current_speed tagastab praeguse kiiruse, millega auto # liigub
def get_current_speed (ise):
tagastage self._current_speed
# Meetod get_speeding_charge tagastab kogu rahasumma, mille
#driver peab maksma kiiruse ületamise eest
def get_speeding_charge (ise):
return self._speeding_charge
# Meetod get_colour tagastab meie armsa sõidu värvi!
def get_colour (ise):
tagastage ise ._värv
#Mutatori meetodid
#Väärtus set_driver muudab meie auto juhti.
def set_driver (ise, uus_draiver):
ise.juhi_nimi = uus_juht
# Speeding_ticket meetod tagab, et juhilt võetakse 50 dollarit tasu, kui # ta tabas kiiruse ületamist üle 140 miili tunnis :(
def kiiruse_pilet (ise, praegune_kiirus):
kui praegune_kiirus <= 140:
tagastama Vale
muu:
ise. kiiruse laadimine + = 50
return True
#Make_makse meetod tagab, et juht saab maksta kogu summa # eest, mis tal kiiruseületamise piletitasude eest võlgu on.
def make_payment (ise, summa_makstud):
self._speeding_charge - = summa_makstud

Pythoni klassi näite selgitus

Parameeter "Mina"

Esiteks pange tähele, et klassis deklareeritud meetodi allkirja ja meetodi allkirja vahel, mida programmeerija funktsiooni kutsumiseks kasutab, on erinevus. Näiteks saada_värv klassis määratletud meetod võtab ühe parameetri, mis on parameeter „ise“.

Kui programmeerija seda meetodit klassi eksemplarile kutsub, ei anna ta aga parameetreid. Sama nähtust võib täheldada kiiruse pileti meetodil, mis on määratletud klassi kahe parameetri (st iseenda) saamiseks ja current_speed), kuid programmeerija suudab selle meetodi käivitada, sisestades väärtuse ainult 'current_speed' parameeter.

Selle põhjuseks on asjaolu, et pakutava parameetri „self” eesmärk on siduda meetod objekti eksemplariga, millele see kutsuti, ja see ei ole väärtus, mida programmeerija annab.

Ehitaja

Klassi konstruktor viitab klassi meetodile, mida kasutaja saab kutsuda selle klassi objekti eksemplari loomiseks. Autoklassis saab kasutaja luua objektieksemplari järgmise süntaksiga:

# meie enda Bugatti loomine :)
Auto (“Bugatti”, “David Sasu”, 90828, 0, 0, “Cherry Red”)

Selle koodi täitmise tulemusel kutsutakse auto klassis meetod __init__. Selle meetodi ülesandeks on loodud eksemplari väärtustega äsja loodud krediitauto objekti genereerimine. Autoklassi iga objekt koosneb kuuest muutujast, mis on:

  • _auto_nimi
  • _juhi_nimi
  • _numbrimärk
  • _voolu_kiirus
  • _kiiruse_laadimine
  • _värv

Juurdepääsumeetodid

Need on meetodid, mis on kirjutatud objektieksemplari olekuteabele juurde pääsemiseks. Autoklassis on kirjutatud juurdepääsumeetodid järgmised:

  • saada_auto_nimi
  • saada juhi_nimi
  • get_license_plate
  • saada_voolu_kiirus
  • get_speeding_charge
  • saada_värv

Mutatori meetodid:

Need on meetodid, mis on kirjutatud objektieksemplari olekuteabe muutmiseks. Autoklassis on kirjutatud mutatsioonimeetodid järgmised:

  • seatud draiver
  • trahv kiiruse ületamise eest
  • tee makse

Kapseldamise mõiste

„Kapseldamine“ on termin, mida kasutatakse objektorienteeritud kujunduse põhimõtte kirjeldamiseks, kus programmi komponendid ei tohiks avaldada nende rakenduste sisemisi üksikasju. Kapseldamise mõiste mõistmise suurendamiseks vaadake meie artikkel kapseldamise kohta.

Viga kontrollimisel

Meie autoklassi rakendamine pole kindel, kuna see võib tõenäoliselt kokku kukkuda või talitlushäire sõltuvalt programmeerijalt saadud sisendist.

Kõigepealt pange tähele, et me ei kontrolli kiiruse_märgise ja makseviisi parameetrite tüüpe ega ka konstruktori ühegi parameetri tüüpe. See võib viia programmi krahhini, kui kasutaja esitab argumendi, mida ei oodatud. Näiteks kui kasutaja helistab, näiteks speeding_ticket ("kiibid ahoi"), siis kukub programm kokku, kuna meetodi ootel oli tüüp täisarv, mitte string.

Nüüd saate aru Pythoni klassi põhitõdedest

Selles artiklis tutvustati Pythoni klassi ja Pythoni klassi objekti mõistet. Teile on tutvustatud ka ideid, millele Python-klass on ehitatud, näiteks: kapseldamine, „ise” identifikaator, juurdepääsumeetodid ja mutatsioonimeetodid.

Selle teabe abil peaksite saama iseseisvalt luua lihtsa Pythoni klassi ja seda testida :)

E-post
WhatsApp rakendab töölauale ja veebile juurdepääsu biomeetrilist autentimist

Nüüd peate oma konto töölaua ja veebirakendusega linkimiseks oma mobiilsideseadme kaudu kinnitama oma isikut.

Seotud teemad
  • Programmeerimine
  • Python
Autori kohta
David Sasu (1 artiklit on avaldatud)Rohkem David Sasult

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Veel üks samm !!!

Palun kinnitage oma e-posti aadress meilis, mille me just saatsime.

.