【发布时间】:2013-12-17 19:53:34
【问题描述】:
我有一个实现给定功能的 python 类,例如文件 Test_script.py 是:
class Test(object):
def __init__(self,name):
self.name=name
def f1(self,n):
return n**2
def f2(self,n,m):
return n+m
def f3(self,word):
print word
我如何构建一个简单地包装这个类和所有函数的 C++ 类,以便这个类可以被其他 C++ 类/代码使用? boost::python 是否有助于提供一些快捷方式?
这为什么相关? 因为可以有一些具体的用例,在 python 中实现给定的功能更快、更容易,因为可以重用许多经过良好测试和记录的模块(例如解析、numpy 函数......),而不是从头开始在 C++ 中。上面的类是一个玩具问题,一旦清楚如何在 C++ 中包装/嵌入它,处理更复杂的功能就会很容易。
谢谢
【问题讨论】:
-
你为什么要这样做?无论问题是什么,这似乎都不是“正确”的解决方案......通常这种类型的事情是将 C/C++ 暴露给 python,反之亦然......(事实上,您可能想要的是暴露 C /C++ 对 python 的功能,python 可以将测试实例传递给。
-
这些近乎琐碎的函数可以很容易地在 C++ 中实现。真的这么简单吗?
-
@JoranBeasley:事实证明,使用该语言的所有类型和模块,我可以在 python 中更轻松地实现一些功能,例如解析,...所以我认为有些用例只是为了方便而想在 python 中做一些事情
-
@moooeeeep:这是为了让示例简单,实际情况在 C++ 中很难实现,因为我使用了很多 python 函数和数据结构
-
你可能对这个帖子感兴趣stackoverflow.com/questions/4650243/…