我正在使用 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;
}
对不起,如果这个问题太长或信息太多。第一次发帖,不想留下任何可能有帮助的东西。感谢您在此问题上提供的任何帮助或见解。