热线电话:13121318867

登录
2020-12-18 阅读量: 3419
SyntaxError: can't assign to function call

我在调用eval函数的时候出现错误提示。

我写的代码如下:

i=0

j=0

eval("name_"+str(i)+"_"+str(j))=10

我的意思是通过eval函数,生成变量name_0_0,让这个变量取值为10。也就是把一个字符串设定为一个变量的名字,并且给这个变量赋值。

但执行代码时出现错误提示:

i=0

j=0

eval("name_"+str(i)+"_"+str(j))=10

File "<ipython-input-493-9a94cf4491cf>", line 3

eval("name_"+str(i)+"_"+str(j))=10

^

SyntaxError: can't assign to function call

(我记得以前是可以的,但现在不可以,具体也不知道为什么,看了下eval的帮助文件也没有看出什么端倪来,可能是函数功能变了)看来这样做是行不通的,如果想实现我的目的该怎么做呢。我们改成下面的命令就可以了。

i=0

j=0

globals()["name_"+str(i)+"_"+str(j)]=10 #这样就没有错误提示了

到此就完美解决了


经验总结:eval不能用在赋值符号'=’的左边。如果用在左边就会有错误提示SyntaxError: can't assign to function call

0.4127
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子