python 3.5.2中的eval(" a + = b")

时间:2016-07-06 00:01:12

标签: python-3.x

我刚刚运行了一些我为学习练习编写的代码而突然遇到错误"语法错误:语法错误",来自eval("alist += [foo]")。试着理解我刚刚制作了一个简单的模块:

a = 5
eval("a += 1")
print(a)

实际上它也会出现同样的错误,即使我刚刚将前两行直接运行到Python控制台中也是如此。现在我只做了几天Python,所以我不是专家,但我99%肯定这应该有用。 a+=1有效。 exec("a+=1")有效。但是eval("a+=1")没有,eval("a-=1")也没有。

我做错了吗? eval()不应该具有此+=功能吗?其他人是否能够做到这一点,而且我自己的Python存在一些问题?我有一些非常奇怪的设置吗?

1 个答案:

答案 0 :(得分:1)

eval()的第一个参数必须是代码对象或表达式。 Python中的赋值是语句