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)