2011-03-25 50 views
0

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

在python2.5中打印一个整数(例如打印100),将调用int_print()。因为当创建int对象,初始化PyIntObject的函数指针 - tp_print该点int_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。而打印功能不像python2.x。 请致电打印时告诉我,它是如何工作的!非常感谢!

回答

0

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

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