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基础的数据类型,还可以转换成代码!!!

再来一个简单的代码测试:

eval还能这么玩儿!!!_字符串转换


具体有什么用呢?不造,好玩就行。