复制boost.python对象 [英] Copying a boost.python object

查看:59
本文介绍了复制boost.python对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些boost python类,我在python中实例化了这些类.我要复制它们.所以,如果我有

I have some boost python classes, which I instantiate in python. I want to copy them. So, if I have

p = Bernoulli(0.5)

我想做

q = Bernoulli(p)

但是,如果我不知道p的类型怎么办?我尝试这样做:

But what if I don't know p's type? I tried to do this:

q = copy.deepcopy(p)

但是python表示无法腌制p.

but python said it couldn't pickle p.

我唯一的解决方案是向Bernoulli的接口添加一个clone()函数吗?还是可以通过某种方式自动生成该方法?可以使copy.deepcopy与Boost.python对象一起使用吗?

Is my only solution to add a clone() function to the interface of Bernoulli? Or can I have that method automatically generated somehow? Can copy.deepcopy be made to work with Boost.python objects?

推荐答案

来自

要使用它:

class_<foo>(foo)
   .def("__copy__", &generic__copy__< foo >)
   .def("__deepcopy__", &generic__deepcopy__< foo >)
   .def(init< const foo & >())

这篇关于复制boost.python对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆