Python eval()内置函数 --执行python表达式

eval() 函数用于执行一个字符串表达式(也可以执行任何代码对象,比如 complex() 创建的代码对象),并返回其值。实参是一个字符串,以及可选的 globalslocals

格式及参数

1
eval(expression[, globals[, locals]])

expression: Python字符串表达式

globals:可选,作为全局命名空间,必须是一个字典

locals:可选,作为局部命名空间,可以是任何映射对象;若 locals 省略则其默认值为 globals 字典

若两个可选参数同时省略,则表达式执行时会使用 eval() 被调用的环境中的 globals 和 locals

参考资料

实例(3.8.8)

1
2
3
4
5
6
7
8
9
10
int = 1
expression = '1+2+3'
print(eval('int + 1'))
print(eval(expression))


''' 输出
2
6
'''

扩展

爬虫代码有这样一行 eval(response.text) ,它可以将字典形式的字符串转换为字典

1
2
3
str_ = "{'a':1,'b':2}"
print(type(str_)) # <class 'str'>
print(type(eval(str_))) # <class 'dict'>