Python 3.3中的Py_FlushLine发生了什么?

时间:2013-04-12 04:04:00

标签: python c api python-3.x

我正在将一个python C模块从2.7.x移植到python 3.3。我遇到的一个问题是我从python标题中没有定义Py_FlushLine

如何修改以下代码片段以在python 3.3中工作?

  if (Py_FlushLine()) PyErr_Clear();

更有趣的是,搜索在线python文档并未显示有关此Py_FlushLine函数的任何信息。

1 个答案:

答案 0 :(得分:3)

Py_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不再具有softspace的概念,我猜测这个函数是多余的,并且应该直接将EOL编写到stdout。