eval函数在Python 2.7中无法正常工作

时间:2015-02-02 07:37:59

标签: python python-2.7

据我所知,eval函数允许python程序在其自身内运行python代码。

我想在 Python2.7 中使用print()函数运行eval命令,但我收到以下错误:

>>> print "test"
test
>>> command='print "test"'
>>> command
'print "test"'
>>> eval(command)

Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    eval(command)
  File "<string>", line 1
    print "test"
        ^
SyntaxError: invalid syntax
>>> 

请注意,我对此命令没有任何问题 python3.4

>>> print ("test")
test
>>> command='print("test")'
>>> command
'print("test")'
>>> eval(command)
test
>>> 

1 个答案:

答案 0 :(得分:5)

在Python 2中print xxx是一个语句,而不是表达式。 eval用于评估表达式;您可以使用exec来执行语句。

在Python 3中,print(xxx)是一个函数调用,因此可以对其进行评估。