Delo z lastnostmi

Omenili smo, da do lastnostmi posameznega objekta ne moremo dostopati neposredno, ampak z uporabo ustreznih metod. Pri Pythonu pa lahko spremenljivki, ki ima enako ime kot zasebna lastnost priredimo funkcijo property() s katero lahko dinamično kličemo ustrezne (zasebne) metode, s katerimi vračamo ali spreminjamo vrednost zasebne lastnosti.

Tole zveni precej zapleteno, zato si oglejmo primer:

class Tocka:

  def __init__(self, x=0, y=0):
    self._x = x
    self._y = y

  def _vrni_x(self):
    return self._x

  def _nastavi_x(self, x):
    self._x = x

  def _vrni_y(self):
    return self._y

  def _nastavi_y(self, y):
    self._y = y

  x = property(
    fget = _vrni_x,    # Ime metode getter
    fset = _nastavi_x  # Ime metode setter
  )

  y = property(
    fget = _vrni_y,    # Ime metode getter
    fset = _nastavi_y  # Ime metode setter
  )

Oglejmo si še delovanje oziroma uporabo tega primera v interaktivnem urejevalniku.


Izvedi Počisti



Gornji program izpiše naslednje:

4 2
8 3
8 4