Python: eval()函数
形式功能:1:b = eval(s),去掉字符串 str 类型外套,恢复里面内容类型赋给 b,但不改变s的类型2,将字符串 str 当成有效的表达式来求值并返回计算结果
语法: eval(source[, globals[, locals]]) -> value
参数:
source:一个 Python 表达式或函数 compile()返回的代码对象
globals:可选。必须是 dictionary
locals:可选。任意映射对象
形式功能1 的表现:
例1:数值字符串
s = '1'
b = eval(s)
print(b)
print(type(eval(s)))
print(type(s)
输出:
1
<class ‘int’>
<class ‘str’>
例2:列表字符串
s = '[,]'
b = eval(s)
print(b)
print(type(eval(s)))
print(type(s))
输出:
[, ]
<class ‘list’>
<class ‘str’>
例3:元祖字符串
s = '(,)'
b = eval(s)
print(b)
print(type(eval(s)))
print(type(s))
输出:
(, )
<class ‘tuple’>
<class ‘str’>
例4:字典字符串
s = "{'name':'张三','age':19}"
b = eval(s)
print(b)
print(type(eval(s)))
print(type(s))
输出:
{‘name’: ‘张三’, ‘age’: 19}
<class ‘dict’>
<class ‘str’>
形式功能2 的表现:
例1
s = "print('abcde')"
b = eval(s) #运行了“print('abcde') ”输出:abcde
print(type(b))#<class 'NoneType'>
例2
a = 10
b = 20
c = eval( "a+b")
print(c) #运行了‘a+b’输出:30
例3
dict1 = dict(a=100,b=200)
d = eval( "a+b",dict1)
print(d)#输出:300
应用:可以应用在文件读出content (读出来为字符串类型),转为其他类型进行操作 支持分享
页:
[1]