eval 可以执行或者解释一串python表达式,这里的表达式仅限于一些运算操作,比如+,-,x,/等,不能进行类似函数调用。
eval(expression[, globals[, locals]])
参数 | 描述 |
---|---|
expression | 表达式。 |
globals | 全局命名空间,必须是一个字典对象。默认globals() |
locals | 局部命名空间,可以是任何映射对象。默认locals() |
a=1
eval("a+1") # 2
g={'a':4}
eval("a+1",g) # 会在g字典中找a变量
b=2
g={'a':4,'b':3}
t={'b':4}
eval('a+b',g,t) # 8 g.a+l.b 在g中找a,在l中找b(不是在g中找)
参考:
https://www.jianshu.com/p/b903c3996524
https://zhuanlan.zhihu.com/p/49955809