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.
Gornji program izpiše naslednje:
4 2 8 3 8 4