【问题标题】:What happens during and after boost::python::import?在 boost::python::import 期间和之后会发生什么?
【发布时间】:2011-07-25 12:50:10
【问题描述】:

Boost 文档没有说明这一点。当我使用boost::python::import 时,指定的模块到底导入到了哪里?我的猜测是'__main__'(只是为了确保)。

另外,当模块对象超出范围时会发生什么?鉴于 Boost 文档中的措辞——“返回:一个包含对导入模块的引用的对象实例”——我猜只有引用超出范围,模块对象仍然可以在 '__main__' 中找到(或它所在的任何地方进口)。

【问题讨论】:

    标签: c++ python boost


    【解决方案1】:

    底层机制是PyImport_ImportModule,不,它不涉及__main__。成功导入的模块会插入到sys.modules dict 中,因此当您 DECREF 函数返回的内容时,不会释放该对象 - 至少仍然有一个引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-20
      • 2012-10-11
      • 2015-02-13
      • 2022-01-16
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2016-07-08
      相关资源
      最近更新 更多