tp_new, tp_alloc, tp_init

Gregory Ewing greg.ewing at canterbury.ac.nz
Thu Dec 8 16:33:10 EST 2011


Michael Hennebry wrote:
> I've been reading about writing extension types in C and am rather
> fuzzy about the relationship between tp_new, tp_alloc and tp_init.
> Most especially, why tp_new? It seems to me that tp_alloc and tp_init
> would be sufficient.

tp_new and tp_init correspond to the Python methods
__new__ and __init__, and they're separated for the
same reasons they are in Python.

tp_alloc is separate because it allows a type to
use a custom memory allocator without disturbing the
rest of the initialisation mechanism.

-- 
Greg



More information about the Python-list mailing list