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)