On Sun, Sep 13, 2009 at 9:52 PM, iu2 <isra...@elbit.co.il> wrote: > Hi, > > I reached the chapter "Emulating numeric types" in the python > documentation and I tried this: > >>>> class A: > def __mul__(self, a): > return 'A' * a > > Now, this works as expected: >>>> a = A() >>>> a * 3 > 'AAA' > > But this doesn't (also as expected): >>>> 3 * a > > Traceback (most recent call last): > File "<pyshell#45>", line 1, in <module> > 3 * a > TypeError: unsupported operand type(s) for *: 'int' and 'instance' >>>> > > What do I need to do in order to make the two classes, int and A, > commutative?
You need to define __rmul__(): http://docs.python.org/dev/3.0/reference/datamodel.html#object.__rmul__ Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list