On Tue, Jun 16, 2009 at 9:12 PM, Utpal Sarkar<[email protected]> wrote:
>
> Hi,
>
> It looks like locally defined symbolic variables are always global, in
> particular they overwrite globally defined variables of the same name:
> sage: d = 0
> sage: def f():
> ....: d = var('d')
> ....: d = 1
> ....:
> sage: d
> 0
> sage: f()
> sage: d
> d
> (I put the d = 1 in the function definition to show the difference in
> behaviour)
Use new_var:
sage: d=0
sage: def foo(n):
... d = sage.calculus.var.new_var('d')
... print d^n
...
...
sage: foo(10)
d^10
sage: d
0
Maybe var(global=False) should be an option?
William
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---