eval() does not assign variable at runtime

2019-04-24 06:16发布

问题:

I use eval() to assign a list to a var:

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

but when I run it , I got a SyntaxError. What's wrong with it? If I cannot do assignment in the eval(), how do I assign a var in the runtime.

回答1:

Use exec for statements:

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

eval works only on expressions, like 2*2,4+5 etc

eval and exec are okay if the string is coming from a known source, but don't use them if the string is coming from an unknown source(user input).

Read : Be careful with exec and eval in Python