Я пытаюсь добавить новые методы динамически в питоне в конструкторе ...Как создать методы динамически в Python (имя + код)
Контекстного
Я написал модуль Python в C++, который взаимодействует с мои библиотеки обработки сигналов, написанные на C ... У меня есть общий метод доступа к моим модулям (так называемые фильтры).
Например .:
int my_filter_set(void * filter_handle, const char * method_id, void * p_arg);
Так что мой CPython оборачивает это так:
filter.set(method_id,value)
И у меня есть доступ ко всем моим метод идентификаторами.
>>> filter.setters
['SampleRate','...']
Цель
Я хотел бы генерировать сеттеры, как:
>>> filter.setSampleRate(value)
в производном классе.
class Filter(BaseFilter):
'''
classdocs
'''
def __init__(self, name, library):
'''
Constructor
'''
BaseFilter.__init__(self,name,library)
for setter_id in self.setters:
code = 'self.set(' + setter_id + ',value)'
# @todo add the method body to a new method called 'set' + method_id (with 'value' as argument)
Вопросы есть ...
- Возможно ли это?
- С модулем типов python?
- Как это сделать?
Я уже проверил this но я не вижу, как я могу адаптировать его к моей цели.
Спасибо.
Именно то, что мне нужно, спасибо! –
@GarciaSylvain: отлично. Я тоже был этому доволен! – mhawke