Boost文档没有指定这一点。当我使用boost::python::import时,指定的模块到底是在哪里导入的?我的猜测是在'__main__'中(只是为了确保)。
另外,当模块对象超出作用域时会发生什么?考虑到Boost文档中的措辞-“返回:持有对导入模块的引用的对象的实例”-我猜只有引用超出了范围,模块对象仍然在'__main__'中(或它被导入的任何地方)。
发布于 2011-07-25 21:05:45
底层机制是PyImport_ImportModule,不,它不涉及__main__。成功导入的模块会被插入到sys.modules dict中,因此当你判断函数返回的内容时,对象不会被释放--至少还有一个引用是活动的。
https://stackoverflow.com/questions/6816373
复制相似问题