python3.x中的打印功能?

时间:2011-03-25 06:24:12

标签: printing python-3.x

我想知道打印功能是如何工作的。但我在python3.2的源代码中找不到print函数!

在python2.5中打印一个整数(例如,打印100),将调用int_print()。因为在创建int对象时,初始化PyIntObject的函数指针 - 指向int_print()的tp_print:

printfunc tp_print;
/* We can't provide a full compile-time check that limited-API
   users won't implement tp_print. However, not defining printfunc
   and making tp_print of a different function pointer type
   should at least cause a warning in most cases. */
typedef int (*printfunc)(PyObject *, FILE *, int);

在python3.x中,所有整数都是PyLongObject的对象,但它初始化tp_print = NULL。而print是一个不像python2.x的函数。 打电话打印时请告诉我它是如何工作的!非常感谢!

1 个答案:

答案 0 :(得分:0)

我已经知道了!打印内置对象时,print()将调用builtin_print()函数。

builtin_print(PyObject *self, PyObject *args, PyObject *kwds)