eval()
eval() 解析传递给此函数的表达式,并在python中运行此表达式
语法: eval(expression, globals=None, locals=None)
a = "1+4"
print(eval(a))
b = eval(a)
c = 'b'
print(c)
print(eval(c))
d = 1+4
print(eval(d))
outcome:
5
b
5
Traceback (most recent call last):
File "try.py", line 9, in <module>
print(eval(d))
TypeError: eval() arg 1 must be a string, bytes or code object
注意:
- eval 可以对字符串中的内容做python运行
eval 可以传递参数内容
,如上述第二例, 将eval()的返回值赋值给变量后,可以通过再次使用eval()传递- eval()的输入参数类型必须为 string, bytes 或者 code object, 可以通过把命令转化成string类来避免
注意
:eval()存在极大的不安全性
,因为它可以使python执行eval输入其中的语句,所以存在被人恶意攻击的危险,比如存在有人试图输入os.system('rm -rf *')
来破坏系统的风险,因此在应用领域,需要对eval()中的输入变量进行筛查.