Izboljšajmo inicializator

Če želimo ustvariti točko (7, 6) trenutno potrebujemo tri vrstice kode:

t = Tocka()
t.nastavi_x(7)
t.nastavi_y(6)

Inicializator – t.j. metodo __init__, ki nastavi začetne vrednosti – lahko posplošimo tako, da ji dodamo dodatna parametra. Oba parametra x in y sta neobvezna. Če ju ne vključimo, bosta lastnosti dobili privzeto vrednost 0. Naš izboljšani razred sedaj izgleda takole:

Izvedi Počisti



Gornji program izpiše:

4 2
6 3
0 0

Delo z lastnostmi

Izboljšani inicializator nam omogoča, da lahko hkrati ko ustvarimo novo točko, nastavimo tudi vrednosti lastnosti _x in _y, ki predstavljata absciso in ordinato točke.

Oglejmo si, kako uporabljamo inicializator in metodi za vračanje oziroma spreminjanje lastnosti točke. Najprej ustvarimo točko (7, 6). Če želimo na primer spremeniti absciso točke iz vrednosti 7 na vrednost (3), to storimo z metodo nastavi_x(vrednost).

a = Tocka(7, 6)
a.nastavi_x(3)

Podobno za spreminjanje ordinate točke uporabimo metodo nastavi_y(vrednost). Če pa želimo samo izvedeti absciso ali ordinato točke, potem uporabimo metodi vrni_x() oziroma vrni_y().

Vse skupaj postane bolj zanimivo, če želimo vrednost abscise ali ordinate točke povečati ali zmanjšati glede na trenutno vrednost abscise oziroma ordinate.

Oglejmo si primer, pri katerem ustvarimo točko ter nato povečamo odrinato točke za 1. To storimo tako, da najprej s pomočjo inicializatorja usvarimo nov objekt. Nato z metodo vrni_y() preberemo trenutno vrednost ordinate točke, ki jo nato povečamo za 1 ter s pomočjo metode nastavi_y(vrednost) ustrezno spremenimo oziroma popravimo vrednost lastnosti objekta.

b = Tocka(2, -3)
b.nastavi_y(b.vrni_y() + 1) # Povečamo trenutno vrednost ordinate za 1

Če bi sedaj točko izpisali, bi dobili naslednji izpis:

2 -2