Python 3.3中的Py_FlushLine发生了什么变化?
我正在将PythonC模块从2.7.x移植到Python3.3。我遇到的一个问题是Py_FlushLine没有在python头中定义 如何修改以下代码段以在python 3.3中工作Python 3.3中的Py_FlushLine发生了什么变化?,python,c,api,python-3.x,Python,C,Api,Python 3.x,我正在将PythonC模块从2.7.x移植到Python3.3。我遇到的一个问题是Py_FlushLine没有在python头中定义 如何修改以下代码段以在python 3.3中工作 if (Py_FlushLine()) PyErr_Clear(); 更有趣的是,搜索在线python文档并没有显示关于Py\u FlushLine函数的任何信息。Py\u FlushLine过去的样子如下: int Py_FlushLine(void) { PyObject *f = PySy
if (Py_FlushLine()) PyErr_Clear();
更有趣的是,搜索在线python文档并没有显示关于Py\u FlushLine函数的任何信息。Py\u FlushLine过去的样子如下:
int
Py_FlushLine(void)
{
PyObject *f = PySys_GetObject("stdout");
if (f == NULL)
return 0;
if (!PyFile_SoftSpace(f, 0))
return 0;
return PyFile_WriteString("\n", f);
}
由于Py3k不再具有软空间的概念,我猜决定是这个函数是多余的,应该直接将EOL写入stdout。Py\u Flushline过去看起来是这样的:
int
Py_FlushLine(void)
{
PyObject *f = PySys_GetObject("stdout");
if (f == NULL)
return 0;
if (!PyFile_SoftSpace(f, 0))
return 0;
return PyFile_WriteString("\n", f);
}
由于Py3k不再有软空间的概念,我猜决定是这个函数是多余的,应该直接将EOL写入标准输出