2012-11-26 28 views
4

我正在爲Python模塊編寫一個簡單的C封裝器。我需要做的是創建一個代表None的新PyObject*。我無法弄清楚如何做到這一點。是否有一個簡單的函數返回指向NonePyObject*,類似於指向新元組的PyTuple_New返回PyObject*或返回指向python字符串的指針?在嵌入式python中創建新的無對象

注意是否有可能,如下調用函數時,路過一個C NULL是否行得通呢?例如:

//pFunc points to a function with 2 arguments 
PyObject *pArgs = PyTuple_New(2); 
PyTuple_SetItem(pArgs, 0, PyString_FromString("hello")); 
PyTuple_SetItem(pArgs, 1, NULL); // <--- will this create a python object representing None? 
pValue = PyObject_CallObject(pFunc, pArgs); 

回答

6

按照documentationNone是單例,並且是從C代碼作爲Py_None訪問。

PyObject* Py_None Python None對象,表示缺乏價值。 該對象沒有方法。需要像對待引用計數一樣對待任何其他 對象。

Py_RETURN_NONE要處理好一個C 函數返回內從Py_None

相關問題