expression:是一个字符串;
globals :全局命名空间,必须是一个字典对象;
locals:局部命名空间,如果被提供,可以是任何映射对象;
1、a =1
print(eval('a+7'))
结果直接计算为8
2、globals 指定的情况下:
a=7
g = {‘a’:9}
re = eval('a+5',g)
结果为14
3、locals,globals 都被指定:
a=7
g = {‘a’:9}
l = {"a":12}
re = eval('a+5',g,l)
结果为17,因为local定义的局部变量,globle定义的全局变量,局部变量会覆盖全局变量;
4、eval可以将字符串转化成相应的数据结构:
如:a = '[1,2,3]'
eval(a) 可以将a转化成列表,字典列表等结构都适用此方法