On Wed, Jul 7, 2010 at 1:49 PM, David Sanders <[email protected]> wrote:
> I now want to substitute eps=1, so I do
>
> a.subs(eps = 1)
>
> but the response is still 3*epsilon !

This is due to the way Python functions work.  Basically, doing

a.subs(eps=1)

is the same as doing

a.subs(**{'eps': 1})

When you use keyword arguments, the function gets the string 'eps'
rather than the var eps.  So, it tries to look for a variable named
'eps' which it doesn't find.  When you pass in the dictionary
explicitly:

a.subs({eps: 1})

the key is the actual variable object rather than a string so it knows
to do the right thing.

--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
URL: http://www.sagemath.org

Reply via email to