0

モジュールがロードされた後、boost.python が C++ 機能を python に公開できるようにするかどうか疑問に思っています。たとえば、次のようなものが機能するといいでしょう。

#include <boost/python.hpp>

int a;

void expose_var() {
    boost::python::scope().attr( "a" ) = a;
}

BOOST_PYTHON_MODULE( mod )
{
    boost::python::def( "expose_var", expose_var, "Expose an attribute." );
}

次に、Pythonで:

import mod
mod.expose_var()
mod.a = 2

同様のコードで、expose_var() と同等のものを呼び出すと、エラーが発生します。

AttributeError: 'NoneType' object has no attribute '__dict__'

テンプレート化された C++ ライブラリを公開しているため、これを実行したいと考えています。デフォルトでテンプレート パラメータのすべての可能な組み合わせを公開したくありません。実行時に公開する特定の組み合わせを Python クライアントに要求させたいと思います。

4

0 に答える 0