I'm learning python and trying to do a program where I have an abstract class and two subclasses that implement such. I need to make another class that will choose which implementation to use depending on the user, but I can not do that. If someone can point me some study material for this part of OOP would help me a lot! I did not find anything to help me in this part of the class.
Follow the part of the code. The BaseDifferent that I do not know how to do.
class Dificultador(object):
#classe abstrata que vai ser super classe de DificultadorNivel e DificultadorTipo
from abc import ABCMeta, abstractmethod
__metaclass__ = ABCMeta
@abstractmethod
def Sort(self, expressoes):
pass
class DificultadorNivel(Dificultador):#Faz um sort da lista de expressoes em niveis
def Sort(self, expressoes):
expressoes = FonteDeExpressoes().lista()
expnivel = sorted(expressoes, key=lambda x: x.nivel)
return expnivel
class DificultadorTipo(Dificultador):#Faz um sort da lista de expressoes em tipo
def Sort(self, expressoes):
expressoes = FonteDeExpressoes().lista()
exptipo = sorted(expressoes, key=lambda x: x.tipo)
return exptipo
class BaseDificultador(Dificultador):
#Funciona como um switch de seleção para escolha do sort