Как добавить метод Python в объект Python во время выполнения с помощью Boost Python?

Привет, я использую ускоренный питон. Есть объект python, созданный моим классом C++.

нравиться

python::class_<RectObject> Embedded_RectObject("RectObject");
Embedded_RectObject.def(init<RectObject>(int,int,int,int));
Embedded_RectObject.def_readwrite(TopX, &RectObject.TopX);

И я создаю этот объект во время выполнения в python.

RectData = RectObject(10,10,10,10);

Теперь я хочу зарегистрировать (добавить) ниже метода python в RectData, который является сторонним объектом python.

#return my member which name is TopX
def GetTopX():
    return self.TopX

Я хочу зарегистрироваться, когда это среда выполнения. Моя система, к которой пользователь может получить доступ с помощью скрипта Python. моя система будет поддерживать все доступные пользователям функции или классы. И система должна поддерживать пользовательский метод объекта, поэтому я необходимо зарегистрировать метод Python для объекта во время выполнения.

(Я хочу сделать этот код на стороне C++, который регистрирует метод python для объекта python во время регистрации во время выполнения. Поскольку моя система будет читать пользовательские файлы сценариев python и регистрировать их для объекта python (EX: RectObject))

Как мне это сделать?

Этот ответ помогает? stackoverflow.com/questions/972/…

Jacques Kvam 27.03.2018 07:18

@JacquesKvam Спасибо за ответ, но мне нужно решение на стороне С ++ для метода регистрации объекта python. Поскольку моя система работает с C++, она будет читать все файлы сценариев пользователя и регистрироваться для каждого экземпляра объекта.

summation 27.03.2018 13:28
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
129
0

Другие вопросы по теме