eval()还能这么玩儿!!!
最常用的用法:将字符串转换成原始数据类型。
# float
eval('1.0') # 1.0
# int
eval('2') # 2
# list
eval('[3,3]') # [3,3]
# dict
eval('{2:3}') # {2:3}
- 以前觉得好玩,
JSON
格式数据转字典不用json.loads(str)
用eval(str)
,今天“超神”给我演示了一个eval
的另一中玩儿法:假如eval
里的字符串是代码会怎么样???
# 超神给演示的代码
import os
# 我当前目录下有一个叫111的文件夹
str1 = "os.rmdir('111')"
eval(str1)
执行完以后111这个文件夹被删除了,也就是说eval(str)
不仅仅可以将字符串转换为Python
基础的数据类型,还可以转换成代码!!!
再来一个简单的代码测试:
具体有什么用呢?不造,好玩就行。