【发布时间】:2016-06-07 08:06:12
【问题描述】:
我在 C++ API 中定义了以下枚举:
typedef enum RESULT_ENUM
{
SUCCESS,
ERR_INVALID_PORT_DEFINITION,
ERR_TOO_MANY_SAMPLES,
ERR_RECORDING_THREAD_ALREADY_RUNNING,
ERR_RECORDING_WITHOUT_APPLY_SETTINGS,
...
}RESULT;
我有一个使用 API 并创建的 C++ 程序:
RESULT res;
然后它使用 API 中的函数来设置 res 内部的值,例如:
res = SetProfile(APP_PROFILE);
res = SetDynamicImageFilter(filterType);
res = StartCalibration();
我想使用 ctypes 创建一个执行相同(字面意思)的 Python 程序。
如何以 Python 方式翻译 RESULT res;?我如何使它包含
函数的期望结果?
编辑:
这些函数返回与RESULT 枚举器匹配的值。我想在 Python 中获取这些枚举器,我该怎么做?我目前正在获取与枚举器值相对应的数字。
【问题讨论】:
-
在 Python 中重新创建
enum有点笨拙,因为它不适合语言的设计。有关示例,请参阅this post。 -
在 C++ 中,
res在内部由 API 更改,并且可由 C++ 程序访问。有没有办法在 Python 中模仿这种行为?就像创建一个ctypes变量,它将根据 C++ API 发生变化?