Recomendo que p
utilize os padrões strategy e factory. procure no refactor.guru.
idealmente e visando a separação de código você faria uma fábrica pra cada classe e uma outra pra agregação. Porém precisa de verificar qual a melhor forma de faze-lo.
O padrão strategy pode te ajudar com isso.
Não conheço muito de python mas verifique a possibilidade de utilizar polimorfismo.