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