Or type Integer = int
to make Sage integers the usual Python integers in that session. On Thu, Oct 23, 2014 at 11:54 AM, Volker Braun <vbraun.n...@gmail.com> wrote: > The short answer is that mathematical objects in Sage don't define addition > by implementing __add__ and __radd__ by hand. If you want to learn about > them make sure to not add Sage objects (like Sage integers). E.g. int(1) + y > would work. > > > > On Thursday, October 23, 2014 7:46:02 PM UTC+1, João Alberto Ferreira wrote: >> >> I am running the following Python example from the book "Learning >> Python", from Mark Lutz and David Ascher, but Sage is returning a >> TypeError after presenting the correct response. Can anyone explain me >> why? I've found this very strange. >> >> sage: class Commuter: >> ....: def __init__(self, val): >> ....: self.val = val >> ....: def __add__(self, other): >> ....: print "add", self.val, other >> ....: def __radd__(self, other): >> ....: print "radd", self.val, other >> ....: >> sage: x = Commuter(88) >> sage: y = Commuter(99) >> sage: x + 1 >> add 88 1 >> sage: 1 + y >> radd 99 1 >> >> --------------------------------------------------------------------------- >> TypeError Traceback (most recent call >> last) >> <ipython-input-76-e047f7a3a32a> in <module>() >> ----> 1 Integer(1) + y >> >> >> /usr/local/Sagemath/sage-6.3/local/lib/python2.7/site-packages/sage/structure/element.so >> in sage.structure.element.RingElement.__add__ >> (build/cythonized/sage/structure/element.c:14696)() >> >> >> /usr/local/Sagemath/sage-6.3/local/lib/python2.7/site-packages/sage/structure/coerce.so >> in sage.structure.coerce.CoercionModel_cache_maps.bin_op >> (build/cythonized/sage/structure/coerce.c:8323)() >> >> TypeError: unsupported operand parent(s) for '+': 'Integer Ring' and >> '<type 'instance'>' > > -- > You received this message because you are subscribed to the Google Groups > "sage-support" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-support+unsubscr...@googlegroups.com. > To post to this group, send email to sage-support@googlegroups.com. > Visit this group at http://groups.google.com/group/sage-support. > For more options, visit https://groups.google.com/d/optout. -- William Stein Professor of Mathematics University of Washington http://wstein.org -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.