boost :: python :: import期间和之后会发生什么?

时间:2011-07-25 12:50:11

标签: c++ python boost

Boost文档未指定此内容。当我使用boost::python::import时,指定的模块究竟在哪里导入?我的猜测是'__main__'(只是为了确保)。

此外,当模块对象超出范围时会发生什么?鉴于Boost的文档中的措辞 - “返回:包含对导入模块的引用的对象实例” - 我猜测只有引用超出范围,模块对象仍然在'__main__'内找到(或者在哪里)它是进口的。)

1 个答案:

答案 0 :(得分:1)

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