В Python у меня есть класс ParentClass. Он определяет метод ParentClass.process (), среди других. ParentClass наследуется двумя дочерними классами: ChildA и ChildB. Это часть системы, которая выступает в роли колеса. Пользователь не должен иметь возможность изменять код пакета.
Во время выполнения система создает объекты ChildA и ChildB.
Теперь я хочу дать пользователю системы возможность изменять поведение метода .process () для объектов ChildA и ChildB.
Очевидно, что она может сделать это, переопределив ChildA.process () и ChildB.process (), но это будет копирование идентичного поведения дважды, и в целом это выглядит как очень странный подход.
Пользователь может унаследовать свой собственный класс от ParentClass и переопределить там .process (), но это означает, что мне нужно как-то динамически сообщить ChildA и ChildB, что наследовать.
Кроме того, все классы (ParentClass, ChildA и ChildB) имеют другие методы, кроме .process (), которые необходимо сохранить без изменений.
Пожалуйста, помогите мне найти наиболее удобный для пользователя (и, вероятно, самый "питонический") способ решения этой проблемы.