et je me demandais si on peut modifier une valeur avec __setitem__ ou afficher un message dans _getitem__ tels que:
class ZDict:
""" classe enveloppe de dictionnaire """
def __init__(self):
self._dictionnaire = {}
def __getitem__(self, index):
""" méthode quand on souhaite accéder aux index de l'exterieur """
return self._dictionnaire[index]
print("test")
def __setitem__(self, index, valeur):
""" méthode de classe appeller quand on souhaite utiliser objet[index] """
self._dictionnaire[index] = valeur * 2
car quand je fais
test = ZDict()
test._dictionnaire["a"] = 2
test._dictionnaire["a"]
le resultat est:
Out[10]: 2
donc j'ai l'impression que print("test") ou valeur*2 n'as pas été prix en compte, est normale ou une erreur de ma part que je n'aurais pas vu ?
merci à vous, en vous souhaitant une bonne journée
et donc je ne comprend pas la présence de l'attribut self._dictionnaire.
Soit tu te sers des méthodes de l'objet dictionnaire dict et dans ce cas, on hérite de cet objet
class ZDict(dict):
# suite
soit on crée son propre dictionnaire si les fonctionnalités sont trop différentes de l'objet dict standard.
À toi de voir quels sont tes besoins, mais ils sont à définir très précisément avant de coder.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Ha ok, c'est beaucoup plus logique comme ça effectivement , d'où la phrase "En réalité, notre classe fera semblant d'être un dictionnaire, elle réagira de la même manière, mais elle n'en sera pas réellement un." merci beaucoup pour l'aides et désoler de l'erreur qui doit choquer les connaisseurs lol, bonne journée.
Les listes permettent d'ajouter n'importe quels élément de n'importe quel types.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
ok c'est une façon de créer un dico dans une classe, j'ai bien compris je crois merci à vous
fonctionnement de __getitem__ et __setitem__
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)