1 语法
eval(expression, globals=None, locals=None)
# 参数说明
expression: 表达式的'字符串'
globals: 全局变量, '字典格式'
locals: 局部变量, '字典格式'
2 参数使用示例
2.1 仅 expression
- 忽略后两个参数的情况下,仅在 当前的作用域 执行
a = 1
print(eval('a + 1')) # 2
# print(eval(str(1 + 1)))
2.2 指定 globals
- 指定 globals 时,在 指定的 globals 作用域 内执行
a = 1
g = {
'a': 2}
print(eval('a + 1', g)) # 3
2.3 指定 locals
- 指定 locals 时,在 指定的 locals作用域 内执行
a = 1
b = 2
c = 3
g = {
'a': 10, 'b': 20}
l = {
'b': 200, 'c': 300}
print(eval('a+b+c', g, l)) # 510
# 计算过程:
# 先计算 l 中的 b+c=500
# 再计算 g 中的 a+500=510