Lastnosti

Lastnosti posameznega primerka lahko spremenimo z uporabo zapisa s piko:

>>> p = Tocka()
>>> p.x = 4
>>> p.y = 3

Spodnji diagram stanja prikazuje stanje po izvedbi zgornjih stavkov:

Spremenljivka p kaže na objekt Tocka, ki vsebuje dve lastnosti. Vsaka izmed obeh lastnosti kaže na število.

Do vrednosti posamezne lastnosti lahko dostopano na enak način, z uporabo zapisa s piko:

>>> print(p.y)
3
>>> x = p.x
>>> print(x)
4

Izraz p.x pomeni, »Pojdi do objekta, na katerega kaže p in dobi njegovo lastnost x«. V gornjem primeru nato spremenljivki x priredimo vrednost lastnosti x, vendar kljub temu ne pride do spora oziroma konflikta. Namen zapisa s piko je, da nedvoumno in jasno določa, za katero spremenljivko gre.

Zapis s piko lahko uporabimo v katerem koli izrazu, zato sta spodnja stavka veljavna:

print("(x=" + str(p.x) + ", y=" + str(p.y) + ")")
kvadrat_razdalje_od_izhodisca = p.x * p.x + p.y * p.y
Prvi stavek izpiše (x=4, y=3). Drugi stavek v spremenljivko shrani izračunano vrednost 25.

Izboljšajmo inicializator

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


t = Tocka()
t.x = 7
t.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)