我想从其他文件夹导入一个类。在另一个python脚本中我会做
from Base.Derived import Class
但是我无法弄清楚如何使用Boost.Python来做到这一点。该库提供了import.hpp,可以让你做这样的事情
object module = import("Base.Derived");
但是python中的等价物是
import Base.Derived
最终目标是将实例化的python对象转换为Base指针,因此首选使用Boost.Python。理想情况下,代码看起来像这样
object module = some form of "from Base.Derived import Class"
// Get a C++ pointer of the derived python class.
object derived = module.attr("Class")();
Card* card = extract< Card* >(derived);
答案 0 :(得分:1)
“点”符号中的每个名称都是其父级的属性。你的最后一段代码几乎是正确的(虽然,我怀疑有些名字混淆):
boost::python::object Class = boost::python::import("Base.Derived").attr("Class");
boost::python::object class_instance = Class();