[英]Creating Instance of Python Extension Type in C
我正在編寫一個簡單的Vector
實現,作為C中的Python擴展模塊,看起來像這樣:
typedef struct {
PyObject_HEAD
double x;
double y;
} Vector;
static PyTypeObject Vector_Type = {
...
};
這是創建的實例非常簡單的Vector
,同時從Python的調用,但我需要創建一個Vector
相同的擴展模塊中的實例。 我查看了文檔,但找不到清晰的答案。 最好的方法是什么?
最簡單的方法是調用您創建的類型對象,例如使用PyObject_CallFunction -不要讓名稱欺騙您,它允許您調用任何可調用對象, 而不僅僅是函數。
如果您沒有引用類型對象的引用,可以方便地將其作為C模塊的static
全局變量使用,則可以用各種方式(例如,使用PyObject_GetAttrString從模塊對象中)檢索它。 但是將PyObject*
粘貼到static
模塊級C變量中可能是最簡單和最方便的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.