Well, that was it! I thought that __repr__ should be a statement that
can executed, but I suppose that's not an absolute rule.

Where are these boolean objects located?

Thanks again!

Adam

On Jul 6, 6:41 pm, Aaron Meurer <[email protected]> wrote:
> You might need to implement __repr__.  In SymPy, __repr__ == __str__,
> so either one will give the printed form of an expression.
>
> By the way, SymPy has boolean objects (Or(), And(), etc.), that you
> might gain inspiration from, or even just be able to use directly.
>
> Aaron Meurer
>
>
>
>
>
>
>
> On Wed, Jul 6, 2011 at 5:38 PM, Adam Moore <[email protected]> wrote:
> > I am stepping through the following code:
>
> >    from sympy.abc import x, y
>
> >    e = x + y
>
> >    print e
>
> > So once I've stepped through all the wrappers and get to the
> > __add__(self, other) implementation, and then step through the cacheit
> > wrapper, I end up in the
> > __new__ of AssocOp.
>
> > Here, when inspecting the variables in scope, right at the beginning
> > of the __new__, the 'args' variable is a tuple containing x and y. The
> > 'Variables' part of the debugger shows this: args = {tuple}(x, y)
>
> > When I do a similar thing in my own project, and I get to the __new__
> > of my class after my version of __add__, which looks as follows (it's
> > called Or because I'm doing boolean algebra):
>
> >      def __add__(self, other):
> >            return Or(self, other)
>
> > So then, since my Or class inherits from the boolExpr class, the
> > __new__ of boolExpr is called, similar to how Adds are done in Sympy.
>
> > However, when I inspect my 'args' variable, it looks like this: args =
> > {tuple}(<basic_bool.Symbol object at 0x0000000002D2B358>,
> > <basic_bool.Symbol object at 0x0000000002D2B630>)
> > Why is this? I have implemented the __str__ for my Symbol class, so
> > why does it display this way?
>
> > Thanks again for the help!
>
> > -Adam
>
> > On Jul 5, 5:17 pm, Aaron Meurer <[email protected]> wrote:
> >> Well, the good news is that SymPy will soon work in Python 3 (we've
> >> got a Google Summer of Code student working on it).  He's making good
> >> progress with it, so it should be supported by our next release or the
> >> one after that.
>
> >> And you can still do "class MyClass(object)" in Python 3, which is
> >> identical to "class MyClass:" there.  So it's good to get into the
> >> habit of always typing "(object)" after your class definitions even in
> >> Python 3, so you won't accidentally create an old-style class in
> >> Python 2 (because unfortunately, you will still have to use Python 2
> >> from time to time for a while).
>
> >> Aaron Meurer
>
> >> On Tue, Jul 5, 2011 at 1:19 PM, Adam Moore <[email protected]> wrote:
> >> > Thanks, the problem actually was that I was using an old-style class
> >> > instead of new style. I started learning Python with 3.2, so the issue
> >> > wasn't there and I didn't know to look out for it. Thanks again for
> >> > the help!
>
> >> > Adam
>
> >> > On Jul 4, 6:58 pm, Aaron Meurer <[email protected]> wrote:
> >> >> I think you mised the part where he said "when I create my own Symbol
> >> >> class," in other words, he is not using SymPy's Symbol in the second
> >> >> case but his own.
>
> >> >> Aaron Meurer
>
> >> >> On Mon, Jul 4, 2011 at 12:42 PM, Mateusz Paprocki <[email protected]> 
> >> >> wrote:
> >> >> > Hi,
>
> >> >> > On 4 July 2011 20:33, Adam Moore <[email protected]> wrote:
>
> >> >> >> So when I import x from sympy.abc, and then check its 'type', its 
> >> >> >> type
> >> >> >> is <class 'sympy.core.symbol.Symbol'>
>
> >> >> >> What makes this so? In a project I'm working on, I'm trying to learn
> >> >> >> some lessons from sympy as to how variables and such are handled, but
> >> >> >> when I create my own Symbol class and execute
>
> >> >> >> x = Symbol('x')
>
> >> >> >> and then check the type, its type is <type 'instance'>
>
> >> >> >> What is the nature of a Symbol in sympy then if it is not also an
> >> >> >> instance of a class?
>
> >> >> > Can you show a complete code sample? I get the following:
> >> >> > $ ipython
> >> >> > In [1]: from sympy import *
> >> >> > In [2]: x = Symbol('x')
> >> >> > In [3]: type(x)
> >> >> > Out[3]: <class 'sympy.core.symbol.Symbol'>
> >> >> > In [4]: del x
> >> >> > In [5]: from sympy.abc import x
> >> >> > In [6]: type(x)
> >> >> > Out[6]: <class 'sympy.core.symbol.Symbol'>
> >> >> > The abc module just uses Symbol():
> >> >> > In [7]: from sympy import abc
> >> >> > In [8]: abc??
> >> >> > Type: module
> >> >> > Base Class: <type 'module'>
> >> >> > String Form: <module 'sympy.abc' from 'sympy/abc.pyc'>
> >> >> > Namespace: Interactive
> >> >> > File: /home/matt/repo/git/sympy/sympy/abc.py
> >> >> > Source:
> >> >> > from core import Symbol
> >> >> > _latin = list('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
> >> >> > # COSINEQ should not be imported as they clash; gamma, pi and zeta 
> >> >> > clash,
> >> >> > too
> >> >> > _greek = 'alpha beta gamma delta epsilon zeta eta theta iota kappa '\
> >> >> >   'mu nu xi omicron pi rho sigma tau upsilon phi chi psi 
> >> >> > omega'.split(' ')
> >> >> > for _s in _latin + _greek:
> >> >> >     exec "%s = Symbol('%s')" % (_s, _s)
> >> >> > del _latin, _greek, _s
> >> >> > But anyway, in both cases x is an instance of Symbol class.
>
> >> >> >> -Adam
>
> >> >> >> --
> >> >> >> You received this message because you are subscribed to the Google 
> >> >> >> Groups
> >> >> >> "sympy" group.
> >> >> >> To post to this group, send email to [email protected].
> >> >> >> To unsubscribe from this group, send email to
> >> >> >> [email protected].
> >> >> >> For more options, visit this group at
> >> >> >>http://groups.google.com/group/sympy?hl=en.
>
> >> >> > Mateusz
>
> >> >> > --
> >> >> > You received this message because you are subscribed to the Google 
> >> >> > Groups
> >> >> > "sympy" group.
> >> >> > To post to this group, send email to [email protected].
> >> >> > To unsubscribe from this group, send email to
> >> >> > [email protected].
> >> >> > For more options, visit this group at
> >> >> >http://groups.google.com/group/sympy?hl=en.
>
> >> > --
> >> > You received this message because you are subscribed to the Google 
> >> > Groups "sympy" group.
> >> > To post to this group, send email to [email protected].
> >> > To unsubscribe from this group, send email to 
> >> > [email protected].
> >> > For more options, visit this group 
> >> > athttp://groups.google.com/group/sympy?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "sympy" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/sympy?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to