我的问题是我有两个这样的课程
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'
谁能告诉我这是什么问题?
答案 0 :(得分:2)
在python中你应该使用
A = interestingLib.A()
而不是
A = interestingLib.A
此代码A = interestingLib.A
分配给A
类型的Boost.Python.class
对象。使用A = interestingLib.A()
,您可以使用默认构造函数创建类型为A
的对象。