2011-03-25 3 views
0

Je veux savoir comment fonctionne la fonction d'impression. Mais je ne trouve pas de fonction d'impression dans le code source de python3.2!fonction d'impression dans python3.x?

Dans python2.5, imprimez un entier (impression 100, par exemple), appelez int_print(). Parce que quand créer un objet int, initialiser le pointeur de la fonction de PyIntObject - tp_print ce point à 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); 

En python3.x, tout entier est un objet de PyLongObject, mais il initialize tp_print = NULL. Et print est une fonction pas comme python2.x. S'il vous plaît dites-moi quand appelez print, comment ça marche! Merci beaucoup!

Répondre

0

Je l'ai déjà su! Lorsque vous imprimez un objet intégré, print() appelle la fonction builtin_print().

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