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