Donc, j'ai une classe personnalisée qui a un __mul__
fonction qui fonctionne avec des nombres entiers. Cependant, dans mon programme (dans les bibliothèques), il est appelé dans l'autre sens, c'est-à-dire 2 * x
où x
est de ma classe. Existe-t-il un moyen de le faire utiliser mon __mul__
fonction pour cela?
Ajoutez simplement ce qui suit à la définition de la classe et vous devriez être prêt à partir:
__rmul__ = __mul__
Mettre en place __rmul__
ainsi que.
class Foo(object):
def __mul__(self, other):
print '__mul__'
return other
def __rmul__(self, other):
print '__rmul__'
return other
x = Foo()
2 * x # __rmul__
x * 2 # __mul__