1
resposta

Error no exemplo

Boa noite a todos,

No video ele faz o seguinte código

class Orcamento(object):

    # removida as constantes

    def __init__(self):
        self.__itens = []
        # começa com o estado em aprovação 
        self.estado_atual = Em_aprovacao()
        self.__desconto_extra = 0

    def aprova(self):
        self.estado_atual.aprova(orcamento)

    def reprova(self):
        self.estado_atual.reprova(orcamento)

    def finaliza(self):
        self.estado_atual.finaliza(orcamento)

Creio que esteja errado e o correto seria

class Orcamento(object):

    # removida as constantes

    def __init__(self):
        self.__itens = []
        # começa com o estado em aprovação 
        self.estado_atual = Em_aprovacao()
        self.__desconto_extra = 0

    def aprova(self):
        self.estado_atual.aprova(self)

    def reprova(self):
        self.estado_atual.reprova(self)

    def finaliza(self):
        self.estado_atual.finaliza(self)

Caso seja utilizando o self, fica o aviso para tirar esse problema, pois até no código fonte do github para download está passando como parâmetro o orcamento

1 resposta

Oi Thigo, tudo bom? =)

Realmente, a primeira implementação não faz sentido tanto porque a variável orcamento nem existe nesse contexto.

Você consegue me dizer em que minuto/segundo do video isso rola exatamente? pois tentei procurar aqui e não encontrei =)

Abraço

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software