C#Python输入法returns一个错误

C# Python input method returns an error

我刚开始学习 IronPython,我尝试了下面返回 IronPython.Runtime.UnboundNameException: 'name 'hello' is not defined' 的代码。
代码:

var py = Python.CreateEngine();
var scope = py.CreateScope();
py.Execute(@"word = input('Input string\n')", scope);
var input = scope.GetVariable("word");
py.Execute("print " + input);

控制台 运行 好的,然后它要求我输入 Input string,然后我输入 "hello"。然后它触发了上面的错误消息。然后我尝试了这个只是为了看看它是否没有 input 方法:

py.Execute(@"x = 2 + 3", scope);
py.Execute("print 'result'," + scope.GetVariable("x"));

所以那个没问题。

有人可以解释一下为什么我不能从 "input" 方法中检索变量吗?为什么是 UnboundNameException?

非常感谢!

从未使用过 ironpython,答案就在你自己的代码中。

您的代码:

py.Execute(@"word = input('Input string\n')", scope); (I type in dog)
var input = scope.GetVariable("word");
py.Execute("print " + input);

导致最后一行说 py.Execute("print dog") ...但是没有狗变量。

还在这里:

py.Execute("print 'result'," + scope.GetVariable("x"));

你知道用引号括起文本..

我推测

py.Execute("print " + input);

应该阅读

py.Execute("print '" + input + "'");

这导致打印 'dog'