Этот вопрос в основном академический.
Это вытекает из некоторых вопросов дизайна, с которыми я столкнулся, работая над оболочками для существующего проекта C ++.
При работе с расширениями C / C ++ для Python можно динамически загружать функции уровня C, которые были заключены в капсульные объекты Python, в другие модули расширения (см. документы).
Это означает, что если вы хотите работать с классом C ++, обернутым в другом модуле, у вас есть эти две опции (по крайней мере):
У меня вопрос такой: Есть ли способ разделить классы C ++ между модулями расширения Python, который позволяет использовать идиоматические классы (то есть, как они будут использоваться в C ++), а также динамически загружать их из другого модуля расширения Python?
Единственный возможный способ, которым я могу придумать, — это повторно объявить класс с необходимыми сигнатурами методов в анонимном пространстве имен (чтобы имена были частными для каждого модуля), а затем определить методы для переноса указателей на функции-члены, которые были загружены через капсулы. , Это вообще возможно?
Задача ещё не решена.