мне нужно найти элегантный способ сделать 2 вида микшинов.
сначала:
Код: Выделить всё
class A(object):
def method1(self):
do_something()
Теперь mixinclass должен сделать Method1 сделать это: do_other () -> a.method1 () -> do_smth_else () -т.е. в основном «оберните» более старую функцию. Я почти уверен, что в этом должно быть хорошее решение.
Код: Выделить всё
class B(object):
def method1(self):
do_something()
do_more()
В этом случае я хочу, чтобы Mixinclass2 имел возможность вводить себя между do_something () и do_more () , т.е.: do_something () -> mixin.method1 -> do_more () . Я понимаю, что, вероятно, это потребует изменения класса B - это нормально, просто ищу самые простые способы достижения этого. self.method1 () = self._new_method1 (); и witch _new_method1 () , что вызывает _old_method1 () .
Проблема: множественные микшины будут переименовать в _old_method1 и это было в связи с этим. Фиктивный метод Call_mixin (self): пройти и инъекция между вызовами и определяющим self.call_mixin () . Опять неэлегантно и сломается на нескольких микшинах ..
Есть идеи?
Подробнее здесь:
https://stackoverflow.com/questions/275 ... -in-python