2012-06-18 45 views
1

也許我失去了一些東西,但這裏有一個問題:如何PyFrameObject轉換的PyObject

我被C擴展跟蹤Python代碼和我的跟蹤功能得到PyFrameObject *框架。現在我想通過Python代碼處理框架(嵌入或通過Cython轉換爲C),但它處理PyObject *。

如何將PyFrameObject *轉換爲PyObject *?我在frameobject.h中找不到適當的轉換函數。

謝謝。

回答

2

使用強制:

PyObject *myObject = (PyObject *)myFrameObject 

這是Python的C API標準;從PyObject「繼承」的所有內容在對象的頂部都有一個PyObject_VAR_HEAD,因此指向對象的指針可轉換爲指向PyObject的指針。