Python中的exec、eval使用实例

瞧,那夕阳边的云霞,好似得到了夕阳的赏赐,变得欣喜异常,时而围坐一团,倾诉衷肠;时而围着夕阳跳起了探戈;更有自我陶醉的,远离他人,自我欣赏……

通过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__包含了所有的内建函数和值;

而普通的{}不会包含__builtins__


>>> a = {}
>>> a.keys()
dict_keys([])

同exec一样,eval也可以使用命名空间:


>>> result = eval('2+3')
>>> result
5
>>> scope={}
>>> scope['a'] = 3
>>> scope['b'] = 4
>>> result = eval('a+b',scope)
>>> result
7

本文Python中的exec、eval使用实例到此结束。别人可以替你开车,但不能替你走路;可以替你做事,但不能替你感受。人生的路要靠自己行走,成功要靠自己去争取。天助自助者,成功者自救。小编再次感谢大家对我们的支持!

标签: Python exec