Funkcije in metode lahko vračajo objekte. Na primer, če imamo dva objekta Tocka
, lahko izračunamo njuno sredino oziroma središčno točko. Najprej napišimo kodo kot običajno funkcijo:
def sredina(p1, p2): mx = (p1.x + p2.x) / 2 my = (p1.y + p2.y) / 2 return Tocka(mx, my)
Ta funkcija ustvari in vrne nov objekt Tocka
:
>>> p = Tocka(4, 3) >>> q = Tocka(12, 6) >>> r = sredina(p, q) >>> r (8.0, 4.5)
Sedaj pa namesto funkcije kodo raje zapišimo v obliki metode. Recimo, da imamo objekt Tocka
in želimo najti središčno točko na pol poti do drugega ciljnega objekta Tocka
:
class Tocka: # ... def sredina(self, tocka): """ Vrne središče med točkama """ mx = (self._x + tocka._x) / 2 my = (self._y + tocka._y) / 2 return Tocka(mx, my)