我的应用程序(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环境中执行。
答案 0 :(得分:2)
根据python documentation,input()
方法相当于eval(raw_input(prompt))
,eval()
只能用于评估表达式。
例如,此代码有效:
>>> a=1
>>> input('--:)')
--:) a+1
2
但是a=2
是一个声明,所以你必须使用exec()
方法来执行它,这是一个例子:
>>> exec(raw_input())
a=2
>>> a
2