Добавление базового класса в существующий объект в Python
У меня есть несколько объектов разных видов (разные имена функций, разные подписи), и я собираюсь их исправить, чтобы иметь общий доступ к ним из разных функций. Вкратце, есть диспетчер, который принимает объекты, которые я хочу исправить, и в зависимости от типа объекта он вызывает различные средства исправления. Патчер добавит методы к объекту:
def patcher_of_some_type(object):
def target(self, value):
# do something and call self methods
object.target = types.MethodType(target, object)
# many more of these
Поскольку программа становится все более сложной, создание оболочки вокруг объекта (или класса объекта) кажется лучшей идеей. Некоторые патчеры имеют общий код или взаимосвязаны. Но я не контролирую ни создание объектов, ни создание классов. Я получаю только предметы. И даже если бы я мог это сделать, я просто хочу обернуть (или залатать) определенные объекты, а не все.
Одним из решений может быть добавление базового класса к существующему объекту, но я не уверен, насколько это обслуживаемо и безопасно. Есть ли другое решение?