>>> variables = {'a': 6, 'b': 7} >>> eval('a * b', globals=variables) 42
此外,此代码不能偶然引用外部定义的名称:
>>> eval('variables') {'a': 6, 'b': 7} >>> eval('variables', globals=variables) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'variables' is not defined
defaultdict例如,使用可以将未定义的变量设置为零:
>>> from collections import defaultdict >>> variables = defaultdict(int, {'a': 42}) >>> eval('a * c', globals=variables) # 请注意,“ c”没有明确定义 0