python当中的eval()函数是起什么作业的?
在python中,eval()是评估函数,用处是去掉最外层引号,然后进一步处理
解释:python中 input()默认录入的是字符串类型
如果用户输入了123,其实读取的是字符串"123"
这时候需要eval(input())来获取整数123,才能进行进一步的计算
之所以说eval()用处是去掉最外层引号是因为,
举例说明吧,
eval("?'你好'?")#?会输出字符串"你好"eval("print("WOW")")?#?经过评估函数处理之后?会输出字符串"WOW"
python中eval的用法
任何时候都不要用eval(), 必须用的话也是用ast.literal_eval()。
几乎用不到input(), 因为人的输入是不可靠的, 要n个逻辑判断输入的是否是正确。
int用到的地方也不多, 用的话, 也要先判断str.isdigit()是否是True。
eval,expression, globals=None, locals=None。
expression:该参数是一个字符串,python会使用globals字典和locals字典作为全局和局部的命名空间,将expression当做一个python表达式进行解析和计算。
globals含义:
该参数管控的是一个全局的命名空间,也就是我们在计算表达式的时候可以使用全局的命名空间中的函数,如果这个参数被提供了,并且没有提供自定义的__builtins__,那么会将当前环境中的__builtins__拷贝到自己提供的globals里,然后才会进行计算。
它是python的内建模块,也就是python自带的模块,不需要我们import就可以使用的,例如我们平时使用的int、str、abs等都在这个模块中。关于它的说明可以参照这篇文章:点击打开链接。如果globals没有被提供,则使用python的全局命名空间。
python中eval函数用法如下:
1、计算字符串中有效的表达式,并返回结果。
2、将字符串转成相应的对象(如list、tuple、dict和string之间的转换)。
3、将利用反引号转换的字符串再反转回对象。
函数作用域:eval()函数并不会创建一个新的作用域,并且它的作用域就是它所在的作用域,有时候需要将eval()函数的作用域设置为全局,当然可以将eval()在全局作用域中使用,这个时候可以用window.eval()的方式实现。
参数情况:
(1)如果参数是一个表达式,eval() 函数将执行表达式。
(2)如果参数是Javascript语句,eval()将执行 Javascript 语句。
注意:如果执行结果是一个值就返回,不是就返回undefined,如果参数不是一个字符串,则直接返回该参数。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!