【发布时间】:2010-10-05 10:49:51
【问题描述】:
我需要从 C++ 计算 Python 表达式。此代码似乎有效:
PyObject * dict = PyDict_New();
PyObject * val = PyRun_String(expression, Py_eval_input, dict, 0);
Py_DECREF(dict);
不幸的是,如果表达式是“假”的“真”(即 val 为 0 并且 PyErr_Occurred() 返回真),它会严重失败。我究竟做错了什么?他们不应该分别评估为 Py_True 和 Py_False 吗?
【问题讨论】:
-
在失败后调用 PyErr_Print() 会显示什么?
-
我知道,我之前应该这样做,但由于多种原因,我无法在我的应用程序中调用 PyErr_Print()。无论如何,我在一个孤立的文件中复制了这个,这就是我得到的:NameError: name 'False' is not defined !!看起来这个文字在 C 中不可用...!
-
既然回答了您的问题,您应该将其发布为答案。