Python 3.x Python3.5.2中的eval(";a+;=b";)
我正在运行为学习练习编写的一些代码,突然遇到了一个错误“SyntaxError:invalid syntax”,来自Python 3.x Python3.5.2中的eval(";a+;=b";),python-3.x,Python 3.x,我正在运行为学习练习编写的一些代码,突然遇到了一个错误“SyntaxError:invalid syntax”,来自eval(“alist+=[foo]”。为了尝试理解,我制作了一个简单的模块: a = 5 eval("a += 1") print(a) 事实上,它给出了相同的错误,即使我只是直接在Python控制台中运行前两行代码。现在我只做了几天Python,所以我不是专家,但我99%确信这应该行得通a+=1有效执行(“a+=1”)起作用。但是eval(“a+=1”)没有,也没有eval(
eval(“alist+=[foo]”
。为了尝试理解,我制作了一个简单的模块:
a = 5
eval("a += 1")
print(a)
事实上,它给出了相同的错误,即使我只是直接在Python控制台中运行前两行代码。现在我只做了几天Python,所以我不是专家,但我99%确信这应该行得通<代码>a+=1有效<代码>执行(“a+=1”)起作用。但是eval(“a+=1”)
没有,也没有eval(“a-=1”)
我做错什么了吗?
eval()
不应该有这个+=
功能吗?其他人能做到这一点吗?我自己的Python有问题吗?我的设置真的很奇怪吗?eval()的第一个参数必须是代码对象或表达式。Python中的赋值是一个语句。感谢链接Celeo,但是那里有太多的信息,我发现几乎不可能找到我问题的明确答案。啊,这就是我需要的澄清——语句和表达式之间的区别,以及eval()需要的。我想这是个很愚蠢的问题。显然我想要exec()。