Bonjour,
Je voudrais surcharger l'opérateur * pour multiplier les valeurs contenues dans des dictionnaires. Cette opération est-elle possible ?
Bonjour,
Je voudrais surcharger l'opérateur * pour multiplier les valeurs contenues dans des dictionnaires. Cette opération est-elle possible ?
oui en redéfinissant la methode __mul__(self, autre)
De préférence tu crées une classe qui hérite de dict et tu y définis uniquement les méthodes que tu veux surcharger
Ici, il faut au moins __mul__(self, autre) (mondict * autre), et tu peux ajouter __imul__(self, autre) (mondict *= autre) et __rmul__(self, autre) (autre * mondict)
J'en profite pour rebondir... y a-t-il un moyen de surcharger l'operateur (qui n'en est pas un) = ?
Quand j'ecris 'a = 1', je ne voudrais pas perdre l'objet initialement pointe par l'identifieur 'a', je voudrais plutot faire quelquechose de cet objet avec 1. Avec le '=' standard, mon objet initial est perdu, et l'identifieur 'a' est lie-a-nouveau a l'entier 1.
Je crois connaitre la reponse, mais bon...
Partager