1
resposta

Dúvida sobre métodos de classe

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)

. . . .

1 resposta

Python é uma linguagem que foi concebida com o paradigma funcional. Em sua evolução passou a dar suporte ao paradigma orientado a objeto. Os autores decidiram que deveria ficar explicito a passagem do objeto quando a função pertencer a uma classe porque o foco da linguagem eram as funções. Assim convencionaram que seria o primeiro parâmetro e o nome seria self.