eval和exec的区别

大家猴啊 / 2023-05-10 / 原文

eval函数
计算指定表达式的值。也就是说它要执行的Python代码只能是单个运算表达式,而不能是复杂的代码逻辑

f = "3+6+9+8"
s = eval(f)
print(s) # 26

  

 

exec函数
exec可以执行复杂的Python代码,而不像eval函数那么样只能计算一个表达式的值

code = '''
def func():
print('test')
return 555
func()
'''

f = exec(code) # test
print('---'*5) # ---------------
print(f) # None

  

eval()函数可以有返回值,而exec()函数返回值永远为None。