我想知道打印功能是如何工作的。但我在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的函数。 打电话打印时请告诉我它是如何工作的!非常感谢!
答案 0 :(得分:0)
我已经知道了!打印内置对象时,print()将调用builtin_print()函数。
builtin_print(PyObject *self, PyObject *args, PyObject *kwds)