Le Mardi 16 Mai 2006 11:05, Jens a écrit :
> s = """
> def a(n):
>   return n*n
>
>
> def b(t):
>   return a(t)
> """
>
>
> ns = {}
> exec(s, {}, ns)
> eval("b(2)", ns, {})
you passed an empty globals dictionnary to the eval func (the local one is not 
in the scope of b defintion)
try this :

exec s // like exec s in globals(), locals()
eval("b(2)") // like , eval("b(2)",  globals(), locals())

or if you to keep this dictionnary as a specific scope  in your appplication :

exec s in ns
eval("b(2)", ns)

-- 
_____________

Maric Michaud
_____________

Aristote - www.aristote.info
3 place des tapis
69004 Lyon
Tel: +33 426 880 097
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to