创建boost-python嵌套名称空间

创建boost-python嵌套名称空间,第1张

创建boost-python嵌套名称空间

您想要的是boost :: python ::
scope

Python没有“命名空间”的概念,但是您可以像命名空间一样使用类:

#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){    // Change the current scope     scope a        = class_<DummyA>("a")        ;    // Define a class A in the current scope, a    class_<a::A>("A")        //.def("somemethod", &a::A::method)        ;    // Change the scope again, a.b:    scope b        = class_<DummyB>("b")        ;    class_<a::b::B>("B")        //.def("somemethod", &a::b::B::method)        ;}

然后在python中,您具有:

#!/usr/bin/env pythonimport mylibprint mylib.a,print mylib.a.Aprint mylib.a.bprint mylib.a.b.B

所有

a
a.A
a.b
a.b.B
实际上的类,但你可以把
a
a.b
就像命名空间-永不实际上的实例化



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5655329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存