# coding: latin-1 class point_espace: def __init__ (self, x,y,z): self._x, self._y, self._z = x,y,z def __getitem__(self,i): if i == 0 : return self._x if i == 1 : return self._y if i == 2 : return self._z # pour tous les autres cas --> erreur raise IndexError ("indice impossible, 0,1,2 autorisés") def __setitem__(self,i,x): if i == 0 : self._x = x elif i == 1 : self._y = y elif i == 2 : self._z = z # pour tous les autres cas --> erreur raise IndexError ("indice impossible, 0,1,2 autorisés") def __str__(self): return "(%f,%f,%f)" % (self._x, self._y, self._z) a = point_espace (1,-2,3) print a # affiche (1.000000,-2.000000,3.000000) a [1] = -3 # (__setitem__) affecte -3 à a.y print "abscisse : ", a [0] # (__getitem__) affiche abscisse : 1 print "ordonnée : ", a [1] # (__getitem__) affiche ordonnée : -3 print "altitude : ", a [2] # (__getitem__) affiche altitude : 3