> But, that's what's happening right now as well. Symbol.__new__ is called
and it is cached. Therefore, the problem persists.

Except that you will probably have the correct `args`. Check this first.

I do not understand what is the issue with Symbol's __new__ could you show
the code that actually raises this error?

> So, how am I to add args?

Answering the above question about `new` and `init` will probably show us
what you are doing wrong and why you can not modify the `args`. If you
insist doing it manually, just modify `_args`. But if you need to do it,
you are probably doing something wrong.


On 25 July 2013 18:30, Prasoon Shukla <prasoon92.i...@gmail.com> wrote:

> @Stefan : Let us say I use __init__ instead. When I initialize a
> BaseScalar, since a __new__ method isn't defined, that means the __new__ of
> superclass (Symbol) will be called.
>
> But, that's what's happening right now as well. Symbol.__new__ is called
> and it is cached. Therefore, the problem persists.
>
> Also, if I use __init__, then since Symbol.__new__ will be called first.
> But, it throws an error:
> __new__() takes exactly 2 arguments (4 given)
> which is why I was using __new__ instead of __init__ in the first place.
>
> @Aaron: The symbols are initialized within another class instance.
> Specifically, it represents field variables in a coordinate system. So, you
> can initialize any number of rectangular coordinate system objects and each
> will have a 'x' attribute that will represent the x coordinate variable.
> Thus the same name. I took the position as strings initially - when the
> BaseScalars were to be initialized by users - but that has changed now. I
> can use ints instead.
>
> Anyway, here are the things I can do:
>
> I can change the superclass to Dummy since using __init__ instead of
> __new__ doesn't work for the reasons I mentioned. I still do not see how to
> fix this. You mention adding args to the object but how am I to do that?
> Symbol.__new__ needs to be called one way or the other - and, it doesn't
> allow for anything else but name and assumptions. And when it is called, it
> returns a cached object. So, how am I to add args?
>
> One thing I can think of doing is to initialize a different named symbol
> and change its name later on. How about that?
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sympy+unsubscr...@googlegroups.com.
> To post to this group, send email to sympy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sympy.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to