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
字典的all_items类应该为任何值返回1。使用 eval 函数,我希望“undefined”计算为1,即使它没有定义。当all_items字典是eval语句的第三个参数时,这种方法有效,但当它是第二个参数时则不行。我的问题是为什么第二个评估不能评估为1? (我怎么能让它工作?)我正在使用Python 2.5。