¿Cómo puedo crear en Python un espacio de nombres anidado?
¡
Espacio de nombres anidados con python
Iniciado por
Fran Smith
, jul 29 2014 22:44
#1 AUTOR PREGUNTA
Preguntas Similares
Esto también te interesa!
#2
Publicado 30 julio 2014 - 06:07
te dejo este ejemplo:
namespace py = boost::python;
std::string nested_name = py::extract<std::string>(py::scope().attr("__name__") + ".nested"); py::object nested_module(py::handle<>(py::borrowed(PyImport_AddModule(nested_name.c_str())))); py::scope().attr("nested") = nested_module; py::scope parent = nested_module; py::class_<a::A>("A")...
#3
Publicado 30 julio 2014 - 06:08
Python no maneja un concepto como tal de espacios de nombres, sin embargo puedes utilizar clases para esta tarea:
include <boost/python/module.hpp>
#include <boost/python/class.hpp>
#include <boost/python/scope.hpp>
using namespace boost::python;
namespace a {
class A{};
namespace b {
class B{}; }
}
class DummyA{};
class DummyB{};
BOOST_PYTHON_MODULE(mymodule) {
scope a = class_<DummyA>("a") ;
class_<a::A>("A");
scope b = class_<DummyB>("b") ;
class_<a::b::B>("B"); }