扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
python中eval函数作用如下:
创新互联公司-专业网站定制、快速模板网站建设、高性价比玉山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式玉山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖玉山地区。费用合理售后完善,十余年实体公司更值得信赖。
1、计算字符串中有效的表达式,并返回结果。
2、将字符串转成相应的对象(如list、tuple、dict和string之间的转换)。
3、将利用反引号转换的字符串再反转回对象。
函数作用域:eval()函数并不会创建一个新的作用域,并且它的作用域就是它所在的作用域,有时候需要将eval()函数的作用域设置为全局,当然可以将eval()在全局作用域中使用,这个时候可以用window.eval()的方式实现。
参数情况:
(1)如果参数是一个表达式,eval() 函数将执行表达式。
(2)如果参数是Javascript语句,eval()将执行 Javascript 语句。
注意:如果执行结果是一个值就返回,不是就返回undefined,如果参数不是一个字符串,则直接返回该参数。
可以把list,tuple,dict和string相互转化。
1、字符串转换成列表
a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
type(a)
b = eval(a)
print b[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
type(b)
2、字符串转换成字典
a = "{1: 'a', 2: 'b'}"
type(a)
b = eval(a)
print b{1: 'a', 2: 'b'}
type(b)
3、字符串转换成元组
a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
type(a)
b = eval(a)
print b([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
type(b)
4、eval()函数传进去的参数必须是字符串或者是对象
示例1:
a=10;
print(eval("a+1"))
执行结果: 11
示例2:
a=10;
g={'a':4}
print(eval("a+1",g))
执行结果:5
示例3:
a=10
b=20
c=30
g={'a':6,'b':8}
t={'b':100,'c':10}
print(eval('a+b+c',g,t))
执行结果:116 (a=6, b=100, c=10)
5、eval函数,eval去除引号后会检查到它是不是可计算的,如果可计算会将计算的结果打印出来,如果不可计算直接返回结果
示例1:不可计算》》》直接输出结果
s='["a","b","c"]'
print(eval(s))
执行结果: ['a', 'b', 'c']
示例2:表达式可计算》》》计算之后输出结果
s='abs(-10)'
print(eval(s))
输出结果:10
5、eval()函数,功能是将string变成算术表达式来执行
示例1:
eval("1+2")
执行结果: 3
示例2:
eval("print(\"hello, world\")")
输出结果:hello, world
以python 3.8.5150.0版本为例,python中eval函数作用如下:
1、计算字符串中有效的表达式,并返回结果。
2、将字符串转成相应的对象(如list、tuple、dict和string之间的转换)。
3、将利用反引号转换的字符串再反转回对象。
参数解析:
expression:这个参数是一个字符串,python会使用globals字典和locals字典作为全局和局部的命名空间,将expression当作一个python表达式进行解析和计算。
globals:这个参数控制的是一个全局的命名空间,也就是我们在计算表达式的时候可以使用全局的命名空间中的函数,如果这个参数被提供了。
并且没有提供自定义的builtins(python的内建模块),那么会将当前环境中的builtins拷贝到提供的globals里,然后进行计算。如果globals没有被提供,则使用python的全局命名空间。
locals:这个参数控制的是一个局部的命名空间,和globals类似,不过当它和globals中有重复的部分时,locals里的定义会覆盖掉globals中的,也就是说当globals和locals中有冲突的部分时,locals说了算,它有决定权,以它的为准。如果locals没有被提供的话,则默认为globals。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流