python中eval的用法:
python eval() 函数的功能:将字符串str当成有效的表达式来求值并返回计算结果。
语法:
eval(source[, globals[, locals]]) -> value
参数:
-
source:一个Python表达式或函数compile()返回的代码对象 -
globals:可选。必须是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()
num 2
num1 4
num2 2
num3 4
解析:num2 因为有globals所以是全局变量,执行后结果为4;num3 既有globals 又有locals,仅在此情况下,优先采用locals的值,故计算结果是2
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)