私はPythonを私が作成しているC++ライブラリに埋め込みます。私は、ユーザが関数ポインタPyObject* (fpFunc*)(PyObject*,PyObject*);
の形でCの関数を渡すことができるようにしたいので、それらの関数を埋め込みPythonで使うことができます。C関数からPyObject *をビルドしますか?
だから私は、関数ポインタを持っていると私はPyMethodDef
構造体を使用し、Py_InitModule("module", ModMethods);
に渡すので、私は簡単に機能をつかむことができPyObject* module
を取得するモジュールの方法として、この機能を置くことが可能であることを知っています。
しかし、私が本当に感謝しているのは、毎回必ず別のモジュールを再作成することなく、この機能をオンザフライで作成できることです。
私はPythonのドキュメントとPythonヘッダーのいくつかを見てきましたが、これは実際の成功なしにこれを行うためのハッピーな方法について考えています...しかし、これを行うもっと一般的な方法があるのだろうかと思います。
私が理解したところでは、すべての関数はモジュールに属していても、__builtin__
なので、モジュールには少なくとも必要です。
どのようにこれを達成するためのアイデアですか?
あなたが意味することは私には分かりません。なぜ関数ポインタを使用していますか?誰がそれを設定していますか? –
私はPythonを埋め込んだC++ライブラリを作っています。私は関数ポインタを使用しています。なぜなら、渡すのが便利だからです。 (私の記事を編集しました) – Manux