eval 会计算pyhon表达式(以字符串形式书写),并且返回结果值,(exec语句并不返回任何对象,因为他本身就是语句), 例如:可以使用下面的代码创建一个python计算器:
eval(input(
"Enter an artithmetic expression:"))
Enter an artithmetic
expression:
6+
23
29
跟exec 一样,eval也可以使用命名空间。尽管表达式几乎不像语句那样为变量重新赋值(eval语句提供两个命名空间,一个全局,一个局部,全局的必须是字典,局部的可以是任何形式的映射) 给exec 或者 eval 语句提供命名空间时,还可以在真正使用命名空间前放置一些值:
scope={}
scope[
'x']=
2
scope[
'y']=
2
eval(
'x*y',scope)
4