0

我的应用程序 (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 环境中执行。

4

1 回答 1

2

根据python 文档input()方法等同于eval(raw_input(prompt))并且eval()只能用于评估表达式。

因此,例如此代码是有效的:

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

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

>>> exec(raw_input())
a=2
>>> a
2
于 2012-11-27T15:17:47.877 回答