Ich habe eine Singleton-Klasse in C++ (kein öffentlicher Konstruktor, C++ - Programmierer rufen class.instance() auf, um den Singleton zu erstellen oder den vorhandenen zurückzugeben).Wie wickelt man eine Singleton-Klasse mit pybind11?
Ich würde es vorziehen, dies auf der Python-Ebene zu verstecken. Wenn ich einen Python Singleton schreiben würde, würde ich das in __new__
behandeln. Wenn eine Klasse keinen öffentlichen Konstruktor hat, glaube ich nicht, dass ich einen __init__
Wrapper erstellen kann (meine Versuche sind fehlgeschlagen). Ich sah keine Erwähnung von __new__
in der Pydbind11 Docs (obwohl es möglicherweise verpasst haben, und Google scheint glücklich zu sein, unterstreicht eine Rückkehr Seiten mit "neuen", ohne Erwähnung von __new__
).
Gibt es ein Singleton Rezept für pybind11 (oder sogar Boost.Python)?