Thanks a lot, both for the explanation and the solution! globals() did
the trick for me.

Georg.

On Dec 22, 4:19 pm, "Mike Hansen" <[email protected]> wrote:
> On Mon, Dec 22, 2008 at 6:12 AM, Timothy Clemans
>
> <[email protected]> wrote:
>
> > sage: sage0("var('a b c')")
> > (a, b, c)
> > sage: sage0("a = b/c")
>
> > b
>
> That's not quite right as it creates 'a' in a different session.
> There are a few variations depending on exactly what you want to do.
> If you want to assign something to 'a', then you don't need to declare
> it as a variable first.  You can use the globals() dictionary to
> insert it into the namespace:
>
> sage: b, c = var('b, c')
> sage: s = "a"
> sage: globs = globals()
> sage: globs[s] = b/c
> sage: a
> b/c
>
> If you just have "b/c" as a string and don't know ahead of time what
> variables are going to be in it, the you can do something like this:
>
> sage: s = "b/c"
> sage: a = SR(s)
> sage: a
> b/c
>
> SR is the parent object for symbolic expressions.  When you write
> SR(s) (or in fact P(s) where P is any parent), it means "try to make
> an element of this parent".
>
> --Mike
--~--~---------~--~----~------------~-------~--~----~
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/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to