On Sep 14, 8:16 am, Chris Rebert <c...@rebertia.com> wrote: > 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- Hide quoted text - > > - Show quoted text -
Thanks! -- http://mail.python.org/mailman/listinfo/python-list