python 内置函数

python eval()函数用于执行表达式的代码。它是python的内置函数。

语法

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

参数

  • expression:指定要执行的表达式,也可以为函数;
  • globals:可选参数,globals为字典类型,它可以替换表达式中expression的参数;见例子2
  • locals:可选参数, local也为字典参数,也可以替换表达式中expression的参数,只不过当glocals和locals都存在相同的参数时,以locals参数为准,见例子3。

返回值

返回表达式执行的值。

程序示例

介绍一些例子了解python eval()函数的使用方法。

例1

没有指定globals和locals参数。

#!/usr/bin/python
# coding=utf-8

# 表达式字符串
a=2
code = 'a+3'
print('字符串表达式:', eval(code)) 

程序运行结果:

字符串表达式: 5

例2

指定globals参数

#!/usr/bin/python
# coding=utf-8

# 表达式字符串
a=2
g={'a': 4} #指定globals参数
code = 'a+3'
print('字符串表达式:', eval(code, g)) 

程序运行结果:

字符串表达式: 7
从结果中可以看到参数 global字典中的a=4替换了表达式中的a=2,即结果为4+3=7。

例3

同时指定globals和locals参数

#!/usr/bin/python
# coding=utf-8

# 表达式字符串
a=2
b=8
c=16
gc={'a':4,'b':6}
lc={'b':60,'c':10}
code = 'a+b+c'
print('字符串表达式:', eval(code, gc, lc)) 
程序运行结果
字符串表达式: 74

 globals字典和locals字典有相同的参数b,以locals参数中的b=60为准,所以这里

a=4

b=60

c=10

结果为4+60+10=74