После перезагрузки модуля my_module
все его объекты удаляются, но я хочу удалить объекты из C++. Как запретить Python удалять объекты?
#include <iostream>
#include <pybind11/embed.h>
class Obj{ ~Obj(){std::cout << "deleted" << std::endl;} };
PYBIND11_EMBEDDED_MODULE(module_obj, m) {
py::class_<Obj>(m,"Obj");
}
/*
#my_module.py
import module_obj
o = module_obj.Obj()
*/
py::scoped_interpreter intpr;
auto my_module = py::module::import("my_module")
auto* o = my_module.attr("o").cast<Obj*>()
my_module.reload() // now o is deleted, how to prevent it?