5

Python モジュールの単純な C ラッパーを作成しています。私がする必要があるのは、PyObject*を表す新しいを作成することNoneです。これを行う方法がわかりません。へのポイントを返す単純な関数はありますか?新しいタプルへのポイントを返す方法や、PyString_FromString` が python 文字列へのポイントを返すPyObject*方法とNone同様ですか?PyTuple_NewPyObject*

以下のように関数を呼び出すときに、CNULLを渡しても機能する可能性はありますか? 例:

//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);
4

1 に答える 1

7

ドキュメントによると、Noneはシングルトンであり、C コードから としてアクセスできますPy_None

PyObject* Py_NoneNone値の欠如を示すPythonオブジェクト。このオブジェクトにはメソッドがありません。参照カウントに関しては、他のオブジェクトと同じように扱う必要があります。

Py_RETURN_NONEPy_NoneC 関数内からの戻りを適切に処理します。

于 2012-11-26T17:33:40.007 に答える