Python 模拟壳行为(要显示的最后一个命令的强制求值)

Python 模拟壳行为(要显示的最后一个命令的强制求值),python,c,Python,C,在python shell中,如果键入a=2则不会打印任何内容。如果我键入a2,则会自动打印。然而,如果我从空闲状态运行脚本,则不会发生这种情况 我想使用python C api模拟这种类似于shell的行为,它是如何实现的 例如,执行此代码PyRun\u字符串(“a=2\na”,Py\u文件输入,dic,dic)将不打印任何内容作为输出。 我想模拟一个类似shell的行为,以便在执行上一个命令时,值“2”存储在一个字符串中。可以通过python命令或C api轻松实现这一点吗?基本上,pyth

在python shell中,如果键入
a=2
则不会打印任何内容。如果我键入
a
2,则会自动打印。然而,如果我从空闲状态运行脚本,则不会发生这种情况

我想使用python C api模拟这种类似于shell的行为,它是如何实现的

例如,执行此代码
PyRun\u字符串(“a=2\na”,Py\u文件输入,dic,dic)将不打印任何内容作为输出。

我想模拟一个类似shell的行为,以便在执行上一个命令时,值“2”存储在一个字符串中。可以通过python命令或C api轻松实现这一点吗?基本上,python shell是如何实现的?

要编译代码,以便表达式语句调用
sys.displayhook
,需要将
Py_single_input
作为
start
参数传递,并且需要一次提供一条语句。

?不过,这会给你一个实际的交互提示。那么你不允许在这种模式下定义动作?还是仍然允许换行?@lezebulon:函数定义是一条语句(复合语句也可以)。不过,我不认为可以在复合语句中放空行。另外,如果我想将résultats字符串存储在内存中,而不是将其赋给std::coāt,该怎么办?谢谢@lezebulon:在这种情况下,您应该编写这样做的Python代码,而不是试图说服Python以不同的方式处理表达式语句。严格来说,您可以设置一个
sys.displayhook
来实现这一点,但我建议不要这样做。