Prekrivanje operatorjev

Nekateri programski jeziki, vključno s Pythonom, omogočajo različne pomene istega operatorja, ko ta operator uporabljamo z različnimi tipi. Na primer, operator + v Pythonu pomeni povsem različne stvari, če ga uporabimo za števila, ali pa za nize. Tej lastnosti pravimo prekrivanje operatorjev (ang. operator overloading).

To je še posebej uporabno, če lahko programerji prekrijejo operatorje tudi za svoje lastne uporabniško-definirane tipe.

Če želimo na primer prekriti metodo operatorja za seštevanje +, potem moramo ustvariti metodo z imenom __add__. Vrnimo se k razredu Tocka, ki smo ga definirali v prejšnjem poglavju. Če želimo sešteti dve točki to pomeni, da ločeno seštejemo nujni koordinati:

class Tocka:
  # ...

  def __add__(self, tocka):
    return Tocka(self._x + tocka._x, self._y + tocka._y)

Vaja


Izvedi Počisti