Python 3.2 と C++ を使用しています。
現在 PyObject に格納されている C 型の種類を抽出する必要があります。私はドキュメントをチェックしてグーグルで検索しましたが、他の誰もこれを行う必要がないようです。
だから私は PyObject を持っていて、C 値を抽出しようとしています。オブジェクトから実際に値を抽出するために必要な関数のリストがありますが、最初に知る必要があるのは、正しい関数を呼び出すためにオブジェクト自体に格納されているものです。
これが理解に役立つ場合に備えて、ここに私が試みているコードの例を示します。
//Variable is a custom variant type to allow for generic functionality.
Variable ExtractArgument( PyObject * arg )
{
Variable value;
PyObject* result;
//now here is the problem, I need to know which Python function to call in order to
//extract the correct type;
value = PyLong_FromLong( arg );
//or
value = PyFloat_FromDouble( arg )
//ect.
return value;
}
うまくいけば、私はこのようなものを手に入れることができます
Variable ExtractArgument( PyObject * arg )
{
Variable value;
PyObject* result;
//PyType is not the actual variable to that holds the type_macro, GetType should be
//replaced by the function I am trying to find
PyType type = GetType( arg );
switch( type )
{
case T_INT: value = static_cast<int>(PyLong_FromLong( arg ));
break;
case T_FLOAT: value = static_cast<float>(PyFloat_FromDouble( arg ));
break;
case T_DOUBLE: value = PyDouble_FromDouble( arg );
break;
//ect.
}
return value;
}
この質問が長すぎたり、情報が多すぎたりして申し訳ありません。初めての投稿で、役立つ可能性のあるものを残したくありませんでした。この問題について私に与えることができる助けや洞察をありがとう.