2011-07-25 25 views
5

我想爲C/C++中的numpy數組分配數字,並將它們作爲numpy數組傳遞給python。我可以用PyArray_SimpleNewFromData做。如何爲C分配的numpy數組註冊析構函數?

問題是,我也想註冊一個函數,當numpy數組引用計數器到達零時,它應該從Python調用,並且會調用C端的一些析構函數語義...這是一個僞示例我需要的東西:

float* arr; PyObject* np_arr; void (*destructor)(float* arr); 
// ... C-allocate array on arr, ... 
// ... 
// ... initialize destructor with some suitable value, and then: 
np_arr = /* ... create the array to wrap arr, 
      and to use destructor on some meaningful way ... */ 

有沒有這樣做的簡單方法?

回答