Python: multiplication override

Colin DeClue picture Colin DeClue · Aug 1, 2011 · Viewed 34.1k times · Source

So, I've got a custom class that has a __mul__ function which works with ints. However, in my program (in libraries), it's getting called the other way around, i.e., 2 * x where x is of my class. Is there a way I can have it use my __mul__ function for this?

Answer

Karl Knechtel picture Karl Knechtel · Aug 1, 2011

Just add the following to the class definition and you should be good to go:

__rmul__ = __mul__