print "instance x : ", x.titre, "| instance y : ", y.titre,\
"| instance z : ", z.titre, " | classe : ", MaClasse.titre
MaClasse.titre = "Goldorak est mort"
print "instance x : ", x.titre, "| instance y : ", y.titre,\
"| instance z : ", z.titre, " | classe : ", MaClasse.titre
x.__class__.titre = "C’est la vie, Cui cui" # __class__ ?
print "instance x : ", x.titre, "| instance y : ", y.titre, \
"| instance z : ", z.titre, " | classe : ", MaClasse.titre
print x.__dict__, x.__class__.__dict__
del x.titre
print "instance x : ", x.titre, "| instance y : ", y.titre, \
"| instance z : ", z.titre, " | classe : ", MaClasse.titre
´
Etonnant, non ?
1.3 M´ethodes et variables cach´ees
Construisons une classe un peu plus ´etoff´ee.
class MaTresClasse(object):
""" Une classe plutot bien fournie
On a une variable cach´ee, une m´ethode et un constructeur
"""
paroles = "Oh non non non j’ai bronz´e,\
mes potes voudront plus me parler,"
__laSuite = "Oh non non non `a la f^ete de Chlo´e\
je me suis trop amus´e,"
def __init__(self):
self.__class__.titre = "Cure toujours"
def desParoles(self):
return self.__laSuite
def __setitem__(self, attribut, valeur):
setattr(self, attribut, valeur)
Le premier param`etre de toute m´ethode dans une classe est une r´ef´erence `a
l’instance consid´er´ee. Par convention, on l’appelle self.
Les variables, commen¸cant par “ ” mais ne finissant pas par “ ” sont des
variables priv´ees. On ne peut y acc´eder que de l’int´erieur de la classe.
x = MaTresClasse()
print x.desParoles()
print x.__laSuite # erreur
print x.__dict__, x.__class__.__dict__
3