これは、Pythonドキュメント(http://docs.python.org/extending/extending.html)の簡単な例です。
static PyObject *
spam_system(PyObject *self, PyObject *args)
{
const char *command;
int sts;
if (!PyArg_ParseTuple(args, "s", &command))
return NULL;
sts = system(command);
return Py_BuildValue("i", sts);
}
追加のブールパラメータを関数に渡したい場合-それを行うための「正しい」方法は何ですか?
PyArg_ParseTuple()に渡すboolオプションはないようです。だから私は次のことを考えました:
- 整数を読み取り、値を使用するだけです(boolはintのサブクラスであるため)
- 整数でPyBool_FromLong()を呼び出す
- 読み取り、オブジェクトを作成し、PyBool_Check()を呼び出して、ブール値であることを確認します
- おそらく、任意のタイプの変数を取得してその真理値を取得する方法があります(つまり、空の配列は偽物などです)。これは、Python関数が通常行うことです。
これらのいずれかが望ましいですか?別のオプション?