eval(exp, globals, locals)
exp是以字符串形式的语句,语句的内容可以是字典、列表、元组还可以是一段表达式,eval()函数的功能十分强大,但却存在着安全隐患,导致目前主要是用ast.literal.eval()来代替其使用。
值得注意的是在globals和locals同时存在时优先从locals中寻找相应参数。
a = 1
eval('a')
→1
def test():
a = 2
eval('print(a)')
→2
eval('print(a)',globals())
→1
eval('print(a)',globals(), locals())
→2
test()