Leif K-Brooks wrote:

Steve Holden wrote:

Yes. "print eval('None')" is printing the value of None as defined in your module's global namespace:


Right, but why? The expression "None" doesn't worry about the global namespace when used in normal code; why does it when used in eval()ed code?

I have no idea why. Given that

 >>> eval("globals()['__builtins__'].globals().keys()")
['None', '__builtins__', '__file__', 'sys', '__name__', '__doc__']

it's beginning to smell a bit like a buglet.

regards
 Steve
--
Steve Holden               http://www.holdenweb.com/
Python Web Programming  http://pydish.holdenweb.com/
Holden Web LLC      +1 703 861 4237  +1 800 494 3119
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to