0

这里的任何 Python 极客都知道 Python 的解释器如何准确地打印输出。我需要确切的源文件。到目前为止,我发现如果 Python 的解释器正在打印任何它调用“PyEval_CallObject”的东西,或者我错了。关于这个的任何指示?我想确切地了解 Python 如何解释打印语句,即写入标准输出。如果你能指出 Python 的解释器如何写入文件也很好。感谢您的帮助。

4

1 回答 1

2

我不是一个真正的 Python 极客,但 grep 源代码库并找到这些东西的实现位置并不难。

看起来有几个 Python 操作码与 print 语句相关联,它们都聚集在ceval.c.

他们似乎都委托给PyFile_*函数家族来写入stdout. 如果您查看PyFile_WriteString,您会发现它只是调用fputs.

您可能还会发现内置打印功能的代码很有帮助(即__builtin__.print,从 Python 3 向后移植)。

于 2014-08-07T02:53:56.217 回答