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

Reply via email to