Python中的execeval的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的execeval的区别相关的知识,希望对你有一定的参考价值。

通过exec可以执行动态Python代码,类似Javascript的eval功能;

而Python中的eval函数可以计算Python表达式,并返回结果;

(exec不返回结果,print(eval("…"))打印None);

例如:

>>> exec("print(\"hello, world\")")

hello, world
>>> a = 1

>>> exec("a = 2")

>>> a

2

这里有个scope(命名空间,作用域)的概念,为了不破坏现在的scope,可以新建一个scope(一个字典)执行exec(Javascript没有此功能):

>>> scope = {}

>>> exec("a = 4", scope)

>>> a

2

>>> scope[a]

4

>>> scope.keys()

dict_keys([a, __builtins__])

__builtins__包含了所有的内建函数和值

 

以上是关于Python中的execeval的区别的主要内容,如果未能解决你的问题,请参考以下文章

python中的模块,库,包有啥区别

Python snippet(代码片段)

这两个代码片段有啥区别?

这两个代码片段之间有区别吗?如果有,那又如何? [复制]

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

Python代码阅读(第13篇):检测列表中的元素是否都一样