Python语法: eval 函数
用法
eval(expression, globals=None, locals=None)
参数:
- expression : 必选参数,可以是字符串,也可以是任意一个code对象实例(可以通过compile函数创建)。如果是字符串,它会被当作一个Python表达式进行分析和解释。
- globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,必须是一个字典对象。
- locals:可选参数,表示当前局部命名空间(存放局部变量),如果被提供,可以使任何映射对象。如果被忽略,那么它将会取与globals相同的值。
- 如果globals与locals都被忽略,那么它们将取eval()函数被调用环境下的全局命名空间和局部命名空间。
例子
1、简单表达式
print(eval('1+2'))
输出结果:3
2、字符串转字典
print(eval("{'name':'linux','age':18}")
输出结果:{‘name’:‘linux’,‘age’:18}
3、传递全局变量
print(eval("{'name':'linux','age':age}"{"age":500}))
输出结果:{‘name’:‘linux’,‘age’:1822}
4、传递本地变量(局部变量)
age = 20
print(eval("{'name':'linux','age':age}"{"age":500},locals()))
输出结果:{‘name’:‘linux’,‘age’:20}