Tenho uma dúvida? Na classe Orcamento, os métodos aprova, reprova e finaliza não precisam ter como argumento o parâmetro self? Para mim, precisa ter um argumento self, pois esses métodos pertencem a classe Orcamento
ex: def aprova():
self.estado_atual.aprova(orcamento)
class Orcamento(object):
def __init__(self):
self.__itens = []
self.estado_atual = Em_Aprovacao()
self.__desconto_extra=0
def aplica_desconto_extra(self):
self.estado_atual.aplica_desconto_extra(self)
def aprova():
self.estado_atual.aprova(orcamento)
def reprova():
self.estado_atual.reprova(orcamento)
def finaliza():
self.estado_atual.finaliza(orcamento)
. . . .