Cargando

Espacio de nombres anidados con python




Pulsa corazón para recibir avisos de nuevas Respuestas

  AUTOR PREGUNTA

Publicado 29 julio 2014 - 22:44
¿Cómo puedo crear en Python un espacio de nombres anidado?
  • ¿Tienes la misma pregunta? Yo también
  • Volver arriba

 

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")...


 

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"); }


   AUTOR PREGUNTA

Publicado 30 julio 2014 - 06:14
Gracias


X