TypeError: globals must be a real dict; try eval(expr, {}, mapping)
时间: 2024-03-26 10:39:19 浏览: 281
这个错误通常发生在使用eval()函数时,globals参数使用了非字典类型的数据。eval()函数用于执行一段字符串作为代码,globals参数则用于指定全局命名空间。正确的用法是将globals参数传入一个字典类型的数据。
例如,如果想要执行一个字符串变量中的Python代码并将其结果赋值给另一个变量,可以这样写:
```python
code_str = "result = 1 + 2"
globals_dict = {}
eval(code_str, globals_dict)
print(globals_dict["result"]) # 输出 3
```
在这里,globals_dict就是一个字典类型的全局命名空间,eval()函数执行了字符串变量code_str中的代码,并将结果存入globals_dict中的result变量中。
阅读全文