Kuigi Python toetab mitut programmeerimise paradigmat, on neist kõige enam rõhutatud just objektorienteeritud programmeerimise (OOP) paradigmat. Võib öelda, et OOP-i kasutamine tähendab programmikoodi teatud (kindlal) viisil organiseerimist. Selle lähenemise juures leiavad kasutamist mõisted nagu klass ja objekt, teemasse enam süvenedes ka kapseldamine, polümorfism, pärimine, modulaarsus, abstraktsioon. Viimaseid nimetatakse OOP tehnikateks.
Miks kasutada objektorienteeritud programmeerimist?:
Objektorienteeritud programmeerimise plussid:
- Programmi erinevateks osadeks jaotamine ja organiseeritus
- Vigade leidmine on kergem
- Korduvkasutus lühendab koodi pikkust
- Lihtsam teha koostööd teiste koodikirjutajatega
Klassid:
Klass on kasutaja määratletud andmestruktuur, mis seob andmeliikmed ja meetodid üheks üksuseks. Klass on objekti loomise plaan või koodimall. Klassi abil saate luua nii palju objekte kui soovite.
- Iga objekt kuulub mingisse klassi; ta on selle klassi isend (ingl.k. instance), näiteks isend Miisu kuulub klassi «kass».
- Sama klassi isenditel on samad isendi muutujad (ingl.k. instance variables) ja isendi meetodid (ingl.k. instance methods), isendi muutujate väärtused (olek) on üldjuhul erinevad.
- Klass võib sisaldada ka muutujaid ja meetodeid, mis ei ole seotud isenditega, nn. klassi muutujad (ingl.k. class variables) ja klassi meetodid (ingl.k. class methods). Klassi muutujad on ühised kõigile isenditele (tavaliselt konstandid, näiteks kassi jalgade arv — 4) ja neid saab kasutada nii klassi meetodites kui ka isendi meetodites. Klassi meetodeid kasutatakse vahel uute isendite loomise juures (isendiloome, ingl.k. instantiation), samuti on neist abi siis, kui me ei soovi meetodit objekti sisse kapseldada.
Näidis:
class Opilane:
def __init__(self, nimi, vanus):
self.nimi = nimi
self.vanus = vanus
def tutvusta(self):
print(f"Mina olen {self.nimi}, {self.vanus} aastat vana")
marek = Opilane("Marek", 20)
marek.tutvusta()
class Opilane: — loob uue klassi nimega Opilane.
init — on eriline meetod, mis käivitatakse, kui objekt luuakse. Ta saab parameetrid nimi ja vanus ning salvestab need objekti sisse.
self.nimi = nimi ja self.vanus = vanus — salvestavad andmed objekti omadustesse.
def tutvusta(self): — meetod, mis kuvab tekstina õpilase andmed.
marek = Opilane(«Marek», 20) — loob uue Opilane objekti nimega marek.
marek.tutvusta() — kutsub meetodi ja väljastab.