Ok, thank you all! I was curious just because, due to the error, I did not expect a result.
On Thursday, October 23, 2014 5:28:46 PM UTC-2, kcrisman wrote: > > Or, in the notebook/cell server/cloud, choose "python" from the drop-down > menu for system and just do this example in Python! Lots of options. > > >> 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 <vbrau...@gmail.com >> <javascript:>> 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...@googlegroups.com <javascript:>. >> > To post to this group, send email to sage-s...@googlegroups.com >> <javascript:>. >> > 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.