考虑是这样的:通在加速参考:: Python的
struct Parameter
{
int a;
Parameter(){a = 0;}
void setA(int newA){a = newA;}
};
struct MyClass
{
void changeParameter(Parameter &p){ p.setA(-1);}
};
好吧,让我们快进和想象我已经做完这些类,揭露一切蟒蛇,和想象也是我实例参数的对象在C++代码,这是我传递给python脚本,以及Python脚本使用MyClass的对象修改我在C++代码开始时创建参数的实例。
该代码执行后,在C++ Parameter实例是不变!!!这意味着它通过价值传递(或类似的东西:S),而不是通过引用。但我认为,我宣布它通过引用传递...
我似乎无法找到有关通过引用传递的boost :: Python文档(虽然似乎是有关参考返回足够的文档......) 。任何人都可以提供一些提示或指针吗?
在您的构造函数中为Parameter添加分号后,此测试代码对我来说工作正常:http://www.pastie.org/873263 – 2010-03-17 03:41:22
@Goose,问题是关于从Python使用此代码,而不是从C++使用。 – 2010-03-17 17:50:23
@Barry mhm。这只是一个很快成型的例子。 – Fabzter 2010-03-18 04:01:36