一尘不染

如何在python中使用eval分配变量的值?

python

好的。所以我的问题很简单:如何在Python中使用eval分配变量的值?我试过了,eval('x = 1')但是那行不通。它返回一个SyntaxError。为什么不起作用?


阅读 136

收藏
2020-12-20

共1个答案

一尘不染

因为x=1是语句,而不是表达式。使用exec运行语句。

>>> exec('x=1')
>>> x
1

顺便说一下,有许多方法可以避免使用exec/,eval如果您只需要分配一个动态名称,例如可以使用字典,setattr函数
locals()字典

>>> locals()['y'] = 1
>>> y
1

更新
:尽管上面的代码在REPL中可以使用,但在函数内部则无法使用。如果没有其他问题,请参见在Python中修改本地变量exec

2020-12-20