私はC++でシングルトンクラスを持っています(パブリックコンストラクタなし、C++プログラマはclass.instance()を呼び出してシングルトンを作成するか、既存のものを返します)。pybind11を使ってシングルトンクラスをラップする方法は?
これをPythonレベルで非表示にすることをお勧めします。もし私がPythonシングルトンを書いていたら、私は__new__
にそれを扱います。クラスにpublicコンストラクタがない場合、私は__init__
ラッパーを作成することはできません(私の試みは失敗しました)。私は012bの言及をpybind11の文書で見たことがなかった(しかし、それを逃してしまったかもしれないが、Googleは__new__
という言及なしに、 "new"を含むリターンページをエライドすることを喜んでいるようだ)。
pybind11(またはさらにBoost.Python)のシングルトンレシピはありますか?