Python:使用Input()方法进行调试

时间:2012-11-27 15:01:04

标签: python debugging

我的应用程序(C#/ WPF)为程序员的用户创建Python代码 - 他们可以选择拖动和放置删除项目,因此他们创建一个应用程序转换为Python的序列。

话虽这么说,他们还想添加调试功能 - 在执行期间将输入注入其序列的选项(例如,将myVar的值从1更改为2)。根据我的理解,我应该能够将其翻译成Python的input()。我一直试图了解它是如何工作的,并得到以下错误(使用PythonWin):

>>> a = 1
>>> input('--:)')
--:)>>> a=2
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "<string>", line 1
    a=2
     ^
SyntaxError: invalid syntax

我做错了什么? (此外,一些用于调试Python功能的教程 - 包括input()将不胜感激。)

修改 我们正在使用Python 2.6.6。不需要IronPython - 它在Python环境中执行。

1 个答案:

答案 0 :(得分:2)

根据python documentationinput()方法相当于eval(raw_input(prompt))eval()只能用于评估表达式。

例如,此代码有效:

>>> a=1 
>>> input('--:)')
--:) a+1
2

但是a=2是一个声明,所以你必须使用exec()方法来执行它,这是一个例子:

>>> exec(raw_input())
a=2
>>> a
2