python语言中eval是什么意思?基本用法是什么?(Python的eval什么意思)

网友投稿 351 2022-06-14


Python 提供了很多内置的工具函数(Built-in Functions),在最新的 Python 3 官方文档中,它列出了 69 个。大部分函数是我们经常使用的,例如 print()、open() 与 dir(),而有一些函数虽然不常用,但它们在某些场景下,却能发挥出不一般的作用。内置函数们能够被“提拔”出来,这就意味着它们皆有独到之处,有用武之地。因此,掌握内置函数的用法,就成了我们应该点亮的技能。接下来就和大家聊聊Python的eval函数

eval 的基本用法

语法:eval(expression, globals=None, locals=None)

它有三个参数,其中 expression 是一个字符串类型的表达式或代码对象,用于做运算;globals 与 locals  是可选参数,默认值是 None。

具体而言,expression 只能是单个表达式,不支持复杂的代码逻辑,例如赋值操作、循环语句等等。

globals 用于指定运行时的全局命名空间,类型是字典,缺省时使用的是当前模块的内置命名空间。locals 指定运行时的局部命名空间,类型是字典,缺省时使用 globals 的值。两者都缺省时,则遵循 eval 函数执行时的作用域。值得注意的是,这两者不代表真正的命名空间,只在运算时起作用,运算后则销毁。

x = 10

def func():

    y = 20

    a = eval('x + y')

    print('a: ', a)

    b = eval('x + y', {'x': 1, 'y': 2})

    print('x: ' + str(x) + ' y: ' + str(y))

    print('b: ', b)

    c = eval('x + y', {'x': 1, 'y': 2}, {'y': 3, 'z': 4})

    print('x: ' + str(x) + ' y: ' + str(y))

    print('c: ', c)

func()

输出结果:

a:  30 x: 10 y: 20 b:  3 x: 10 y: 20 c:  4

由此可见,当指定了命名空间的时候,变量会在对应命名空间中查找。而且,它们的值不会覆盖实际命名空间中的值。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:eval是什么意思?python里的eval函数的定义(eval()函数的作用是什么?python)
下一篇:翻译一下Python中type是什么意思?有什么用(python中的type什么意思)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~