1

私はPython/C APIを使用しており、C関数でPythonの長整数引数を取り、それを10nPyLong進数のchar配列に変換しnStringたいと考えています。これが私がやりたいことの抜粋です。

PyObject *nPyLong;
PyArg_ParseTuple(args, "O", nPyLong);

PyLong_Check(nPyLong) // returns true

const char *nString;
// This function doesn't exist but demonstrates the functionality
PyLong_AsCharArray(&nString, nPyLong, 10);

APIリファレンスにはPyObject* PyLong_FromString(char *str, char **pend, int base)、任意のベースを指定してC char配列をPythonの長整数に変換する関数が記載されていますが、その逆を行う関数が見つかりません。

これは可能ですか?1つのアイデアは、Pythonの長整数をPythonの文字列オブジェクトに変換してからCのchar配列に変換することですが、長い整数を処理する文字列関数もありません。CがPythonのlongintを処理する唯一の方法は、Cのint型に変換することであるように思われます。これは、すべて私のアプリケーションでオーバーフローします。

4

1 に答える 1

3

PyObject_Str()(または)を使用PyObject_Bytes()して、結果のオブジェクトをに変換しますchar*

于 2012-04-21T23:21:58.543 に答える