2
respostas

Solução do erro: TypeError: descriptor '__init__' requires a 'super' object but received a 'str'

Para quem estiver com o seguinte erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Lembre que nas classes filhas, a referência ao construtor da classe pai deve ser "super()" e não apenas "super" (sem os parêntesis), por exemplo:

class Prato(ItemCardapio):
    def __init__(self, nome, preco, descricao):
        super().__init__(nome, preco)
        self.descricao = descricao

    def __str__(self):
        return self._nome

Se você escrever a referência "sem parentesis" você teria que instanciar um item_cardapio antes e passá-lo como argumento das classes filhas.

2 respostas

Bom dia Julio! Tudo bem?

Agradeço pela sua contribuição e dica sobre como solucionar o erro que é apresentado quando a função super() é utilizada de forma errada. Aproveitando a sua dica, gostaria de compartilhar também o artigo Herança, Polimorfismo e o super() do Python que aborda com detalhes sobre a importância da função super().

Continue com essa dedicação e empenho.

Abraços e bons estudos.

Deus te abençoe