У меня есть одноэлементный класс на С++ (без открытого конструктора, программисты на С++ вызывают class.instance() для создания одноэлементного или возврата существующего).
Я бы предпочел скрыть это на уровне Python. Если бы я писал синглтон Python, я бы справился с этим в __new__
. Если у класса нет общедоступного конструктора, я не думаю, что смогу создать оболочку __init__
(мои попытки не увенчались успехом). Я не видел упоминания о __new__
в документах pybind11 (хотя, возможно, пропустил его, и Google, похоже, счастлив игнорировать подчеркивание страниц возврата, содержащих «новые», без упоминания __new__
).
Есть ли рецепт синглтона для pybind11 (или даже Boost.Python)?