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