python 中的exec

mac2022-06-30  16

x = 10 expr = """ z = 30 sum = x + y + z print(sum) """ def func(): y = 20 exec(expr) exec(expr, {'x': 1, 'y': 2}) exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4}) func()

输出

60 33 34

exec可以运行复杂的语句,但是返回值永远为None, 而eval要执行的Python代码只能是单个运算表达式(注意eval不支持任意形式的赋值操作) ,而不能是复杂的代码逻辑,这一点和lambda表达式比较相似。

转载于:https://www.cnblogs.com/c-x-a/p/10341932.html

最新回复(0)