Функция печати в python3.x?

Я хочу знать, как работает функция печати. Но я не могу найти функцию печати в исходном коде python3.2!

В python2.5 выведите целое число (например, print 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. И print - это функция, не похожая на python2.x Скажите, пожалуйста, когда звоните в печать, как это работает! Большое спасибо!

1 ответ

Я уже знал! При печати встроенного объекта print() вызовет функцию builtin_print().

builtin_print(PyObject *self, PyObject *args, PyObject *kwds)
Другие вопросы по тегам