gpt4 book ai didi

python - Boost python,从另一个类的方法返回一个类

转载 作者:行者123 更新时间:2023-11-28 02:15:52 26 4
gpt4 key购买 nike

我的问题是我有两个这样的类

class B{
public:
double x,y;
}

class A{
public:
B foo();
}


BOOST_PYTHON_MODULE(interestingLib){
class_<A>("A")
.def("foo", &A::foo)
;
class_<B>("B")
.def_readonly("x",&B::x)
.def_readonly("y",&B::y)
;
}

在我的 python 脚本中,我调用我的函数 foo 并获得返回值,之后我想像这样查看成员变量 x

A = interestingLib.A
B = A.foo()
B.x

但我收到错误 AttributeError: 'NoneType' object has no attribute 'x'

谁能告诉我问题出在哪里?

最佳答案

在 python 中你应该使用

A = interestingLib.A()

代替

A = interestingLib.A

此代码 A = interestingLib.A 分配给类型为 Boost.Python.classA 对象。使用 A = interestingLib.A(),您可以使用默认构造函数创建 A 类型的对象。

关于python - Boost python,从另一个类的方法返回一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34052773/

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