Tiivistelmä luokan määrittelystä ja olioiden luonnista ja käytöstä
Tähän kappaleeseen on koottu vielä pääkohtia tärkeimmistä luvussa esitetyistä asioista, ei kuitenkaan läheskään kaikista.
Luokan määrittely
Luokan määrittely aloitetaan luokan otsikolla, esimerkiksi
class Opiskelija:
Luokan sisälle kirjoitettavassa metodissa __init__
määritellään,
mitä tapahtuu, kun luodaan uusi luokan olio
def __init__(self, annettu_nimi, numero):
self.__nimi = annettu_nimi
self.__opiskelijanumero = numero
self.__tenttiarvosana = 0
self.__harjoitusarvosana = 0
self
tarkoittaa sitä oliota, jota ollaan juuri luomassa.
Luokkaan kirjoitettavat metodit määrittelevät, mitä toimenpiteitä luokan olioille voidaan tehdä, esimerkiksi
def laske_kokonaisarvosana(self):
if self.__tenttiarvosana == 0 or self.__harjoitusarvosana == 0:
arvosana = 0
else:
arvosana = (self.__tenttiarvosana +
self.__harjoitusarvosana + 1) // 2
return arvosana
self
tarkoittaa tällöin sitä oliota, jolle metodia kutsutaan (olioon
viittava muuttuja on kutsussa ennen pistettä ja metodin nimeä).
Yleensä luokkaan kirjoitetaan metodi __str__
. Se palauttaa
merkkijonon, joka sisältää tietoja oliosta
def __str__(self):
mjono = self.__nimi + ", " + self.__opiskelijanumero + \
", tenttiarvosana: " + str(self.__tenttiarvosana) + \
", harjoitusarvosana: " + str(self.__harjoitusarvosana)
return mjono
Olioiden luominen ja käyttö
Jos olioita luodaan ohjelmassa, joka on toisessa moduulissa (tiedostossa) kuin luokan määrittely, pitää luokan sisältävä moduuli ensin tuoda ohjelman käyttöön
import opiskelija
Esimerkki olion luomisesta (luokka eri moduulissa):
kurssilainen1 = opiskelija.Opiskelija(nimi1, op_nro1)
Olion luonti on esitetty =
-merkin oikealla puolella. Sijoituskäskyn
avulla muuttuja kurssilainen1
pannaan viittaamaan luotuun olioon.
Esimerkki metodin kutsumisesta oliolle:
print("Kurssiarvosana:", kurssilainen1.laske_kokonaisarvosana())
Jos metodilla on parametrin self
lisäksi muita parametreja, annetaan
ne metodin kutsussa samalla tavalla kuin funktioiden kutsussa.
kurssilainen1.muuta_tenttiarvosana(4)
Jos olion luokassa on määritelty metodi __str__
, voidaan olion
tiedot tulostaa helposti.
print(kurssilainen1)