python中eval的用法

 我来答
创作者QA1Lkqo299
行业观察员

2023-02-25 · TA获得超过2945个赞
知道大有可为答主
回答量:1.2万
采纳率:98%
帮助的人:264万
展开全部

eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。即变量赋值时,等号右边的表示是写成字符串的格式,返回值就是这个表达式的结果。

eval()函数用来执行一个字符串表达式,并返回表达式的值,还可以把字符串转化为list、tuple、dict。eval函数的语法:eval(expression[,globals[,locals]])。

扩展资料:

如果eval函数在执行时遇到错误,则抛出异常给调用者;类似的函数是loadcode,loadcode并不立即执行代码,而是返回一个函数对象。并且loadcode支持路径参数,eval并不支持,eval并不支持代码中的return语句,而是将代码作为表达式直接计算出结果。

例如:

var d = eval("({name:'chentong'})")

alert(d.name);

帐号已注销
2023-03-07 · 超过19用户采纳过TA的回答
知道答主
回答量:236
采纳率:100%
帮助的人:5.3万
展开全部

Python中eval的用法:

Python eval()函数的功能:将字符串str当成有效的表达式来求值并返回计算结果。

语法:

eval(source[,globals[,locals]]) -> value

参数:

source:一个Python表达式或函数compile()返回的代码对象。

blobals:可选。必须是dictionary

locals:可选。任意map对象

如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。

Python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。我们可以用print(locals())来查看该函数体内的所有变量名和变量值。

x = 1

y = 1

num = eval("x+y")

print('num',num)

def g():

x = 2

y = 2

num1 = eval("x+y")

print('num1',num1)

num2 =eval('x+y',globals())

print('num2',num2)

num3 = eval("x+y",globals(),locals())

print('num3',num3)

g()

num2

num1 4

num2 2

num3 4

解析:num2因为有globals所以是全局变量,执行后结果为4;num3既有globals又有locals,仅在此情况下,优先采用locals的值,故计算结果是2。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
您可能需要的服务
百度律临官方认证律师咨询
平均3分钟响应 | 问题解决率99% | 24小时在线
立即免费咨询律师
18009人正在获得一对一解答
郑州都市传说6分钟前提交了问题
南宁热带风暴6分钟前提交了问题
大连海浪之心6分钟前提交了问题
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消
还有疑问? 马上咨询39358位在线律师,3分钟快速解答
立即免费咨询律师

辅 助

模 式