-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating
Learning Cython Programming (Second Edition) - Second Edition
By :
When wrapping up native structs, for example, it can be very tempting to follow standard C/C++ idioms and require the Python programmer to call, allocate, and release manually on different objects. This is very tedious and not very Pythonic. Cython allows us to create cdef classes, which have extra hooks for initialization and deallocation that we can use to control all memory management of structs. These hooks are triggered automatically by the Python garbage collector, making everything nice and simple. Consider the following simple struct:
typedef struct data { int value; } data_t;
We can then write the Cython declaration of the C struct into PyData.pxd as follows:
cdef extern from "Data.h":
struct data:
int value
ctypedef data data_tNow that we have defined the struct, we can wrap up the struct into a class:
cimport PyData
cdef class Data(object):
cdef PyData.data_t * _nativeData
…Wrapping up data into a class like this...
Change the font size
Change margin width
Change background colour