exec语句python

时间:2012-08-21 17:31:57

标签: python

如何在Python中动态执行语句?

例如:假设值x包含以下表达式,(a + b)/ 2,

a = 1
b = 3
x = (a+b)/2

x的值将来自表

4 个答案:

答案 0 :(得分:2)

您可能需要eval

#!/usr/bin/env python

a = 1
b = 3
x = "(a+b)/2"
print eval(x)

但它通常被视为bad practice(点击here以获得更精细,更有趣的解释)

答案 1 :(得分:0)

你可以这样做:

a = 1
b = 3
x = '(a+b)/2'

print eval(x)

请注意,x的值用引号括起来,因为eval需要字符串或代码对象。

另外,也许请阅读this以确保您安全地使用它(因为这通常是一个问题,我不会假装成为其缺陷的专家:)。

答案 2 :(得分:0)

虽然python既有“exec()”又有“eval()”,但我相信在这种情况下你会使用后者:

>>> a = 1
>>> b = 3
>>> x = "(a + b)/2"
>>> eval(x)
2

答案 3 :(得分:0)

您可以使用eval,如

eval(x)

实际上你可以使用

x=eval('(a+b)/2')

获取结果(在这种情况下,eval将返回计算结果)。