class all_items(dict):
def __getitem__(self, key):
return 1
>>> eval("undefined",dict(),all_items())
1
>>> eval("undefined",all_items(),dict())
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
eval("undefined",all_items(),dict())
File "<string>", line 1, in <module>
NameError: name 'undefined' is not defined
The all_items class of dictionary should return 1 for any value. Using the eval function, I want "undefined" to evaluate to 1, even though it isn't defined. This works when the all_items dictionary is the third argument of the eval statement, but not when it is the second argument. My question is why doesn't the second statment evaluate to 1? (And how could I make it work?) I'm using Python 2.5.