Python的解释器如何打印文本? - 源代码

时间:2014-08-07 01:59:26

标签: python c interpreter pyc

这里的任何Python爱好者都知道Python的解释器如何准确地打印输出。我需要确切的源文件。到目前为止,我发现如果Python的解释器正在打印任何它正在调用" PyEval_CallObject"或者我错了。有关于此的任何指示?我想确切地看到Python如何解释print语句,即写入stdout。如果你可以指出Python的解释器如何写入文件也会很棒。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

我不是一个真正的Python爱好者,但是要深入了解源代码并找到实现这些内容的地方并不难。

看起来有几个Python操作码与print语句相关联,they're all clustered together in ceval.c

他们似乎都委托PyFile_*系列函数写信给stdout。如果您查看PyFile_WriteString,您会看到它只是调用fputs

您可能还会发现code for the built-in print function有用(即__builtin__.print,从Python 3后端移植。)