您的位置:首页 > 编程语言 > Python开发

python-eval之妙用及危害

2019-06-16 09:51 288 查看
python-eval之妙用及危害

eval()函数十分强大,官方demo解释为:将字符串str当成有效的表达式来运算并返回计算结果。

即将引号中的内容剥离出来,作为独立的表达式。

比如:
b = eval('2')	就是 b = 2

b = eval('[1,2,3]')		就是 b = [1,2,3]

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":1822}))
输出结果:{'name': 'linux', 'age': 1822}

4、传递本地变量
age=18
print(eval("{'name':'linux','age':age}",{"age":1822},locals()))
输出结果:{'name': 'linux', 'age': 18}

eval虽然方便,但是要注意安全性,可以将字符串转成表达式并执行,就可以利用执行系统命令,删除文件等操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: