gpt4 book ai didi

c++ - 如何将 C++ 对象转换为 PyObject?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:18:51 24 4
gpt4 key购买 nike

我有两个c++对象

    int queueIndex
Timer timer_obj

这里是定时器类的定义

class Timer
{

private:
struct timeval tStart; /**< @brief Stores the system time when the timer is started */
struct timeval tFinish; /**< @brief Stores the system time when the timer is stopped */

protected:
float getElapsedTime(struct timeval, struct timeval);

public:
Timer();
string currentTime();
float currentElapsedTime();
void restart();
float stop();
int high_pres_usleep_untill(unsigned long long int);
string getStringStartTimer();
void setStartTimerFromString(string);
void sleep(long int);
unsigned long long int get_clock();

我需要将这两个对象转换为 PyObj*。我为此目的使用了 boost::python。我现在希望在没有 boost 或 swig 的情况下完成它。我成功转换了 Index,但我对 timer_obj 毫 headless 绪

    PyObject* pyo=PyInt_FromLong(queueIndex)

如果有人能帮助我,我将不胜感激。我只需要一个例子,你不需要给我完整的代码。另外,类中定义的函数有点复杂,所以我没有在这里给出。是可以转换 timer_obj 然后分配一个新引用,还是我必须为类中的所有结构和函数获取新引用并使用这些引用创建一个新类?

最佳答案

您需要做的是创建一个 extension type .不幸的是,这个过程相对复杂,需要几百行代码。这就是 boost::python 和 SWIG 的整个 python,用于删除所有样板文件。

关于c++ - 如何将 C++ 对象转换为 PyObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com