eval()不会在运行时分配变量

时间:2013-06-21 07:37:04

标签: python string eval

我使用eval()将列表分配给var:

eval('mylist = [1,2,3]') 

但是当我运行它时,我得到了一个SyntaxError。它出什么问题了?如果我不能在eval()中进行赋值,如何在运行时分配var。

1 个答案:

答案 0 :(得分:13)

使用exec语句:

>>> exec 'lis = [1,2,3]'
>>> lis
[1, 2, 3]

eval仅适用于2*24+5等表达式

如果字符串来自已知来源,

evalexec都可以,但如果字符串来自未知来源(用户输入),则不要使用它们。

阅读:Be careful with exec and eval in Python