【问题标题】:from X import Y with Boost.Python使用 Boost.Python 从 X 导入 Y
【发布时间】:2017-12-05 13:52:11
【问题描述】:

我想从另一个文件夹导入一个类。在另一个 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);

【问题讨论】:

    标签: python c++ python-2.7 boost boost-python


    【解决方案1】:

    “点”表示法中的每个名称都是其父项的属性。而且您的最后一段代码几乎是正确的(尽管我怀疑名称有些混淆):

    boost::python::object Class = boost::python::import("Base.Derived").attr("Class");
    boost::python::object class_instance = Class();
    

    【讨论】:

      猜你喜欢
      • 2011-04-05
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多