функция печати в python3.x? - PullRequest
0 голосов
/ 25 марта 2011

Я хочу знать, как работает функция печати.Но я не могу найти функцию печати в исходном коде 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 Ответ

0 голосов
/ 25 марта 2011

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

builtin_print(PyObject *self, PyObject *args, PyObject *kwds)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...