OK, thank you both.  I will have anther look on Monday.

David.

On Jul 11, 5:22 pm, Robert Bradshaw <[EMAIL PROTECTED]>
wrote:
> On Jul 11, 2008, at 7:19 AM, David Bate wrote:
>
>
>
> > Hello,
> > I am a beginner to sage-devel, but I have done a search and nothing
> > like this came up, although I believe it should be a newbie question.
>
> > I have a class, my_class say derived from float, that I want to put
> > into sage so that one can type 3*my_instance on the command prompt and
> > something sensible will happen.  However, rather than looking for
> > __mul__ in type sage.rings.integer.Integer, noticing that it doesn't
> > work for my_class and then trying __rmul__ in my_class (which from my
> > knowledge of python I would expect to happen) it appears sage casts
> > my_instance to a float and tries the multiplication that way.
>
> > To solve this I tried to write a wrapper for
> > sage.rings.integer.Integer.__mul__ however I get the error "can't set
> > attributes of built-in/extension type 'sage.rings.integer.Integer'"
> > when executing
> >    sage: sage.rings.integer.Integer.__mul__ = my_new_multiplication
>
> > Could someone enlighten me about either problem, and a possible way to
> > fix it.
>
> > Thanks,
> > David.
>
> This will only work for Python instances. sage.rings.integer.Integer  
> is an extension class, just like the builtin Python int, and the  
> error is similar:
>
> sage: int.__mul__ = my_new_multiplication
> ------------------------------------------------------------
> Traceback (most recent call last):
>    File "<ipython console>", line 1, in <module>
> TypeError: can't set attributes of built-in/extension type 'int'
>
> Also, note that sage.rings.integer.Integer itself is highly optimized  
> with lots of hacks (since its such basic type) so trying to extend it  
> may be difficult.
>
> - Robert

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to