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.