Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Chamar função da classe pai

Nos exemplos do vídeo, da explicação e dos exercícios, para acessar uma função da classe pai devemos chamar a função super, para a partir dela chamar a função. Na minha máquina chamando direto a função pelo self da classe filha funciona, por que essa complexidade da função super?

Exemplo:

-- coding: UTF-8 --

class Perfil(object): 'Classe padrão para perfis de usuários'

def init(self, nome, telefone, empresa): self.nome = nome self.telefone = telefone self.empresa = empresa self.__curtidas = 0

def imprimir(self): print "Nome : %s, Telefone: %s, Empresa %s" % (self.nome, self.telefone, self.empresa)

def curtir(self): self.__curtidas+=1

def obter_curtidas(self): return self.__curtidas

class Perfil_Vip(Perfil): 'Classe padrão para perfis de usuários VIPs'

def obter_creditos(self): return self.obter_curtidas() * 10.0

5 respostas
solução!

Pode ser direto sim, é habito meu chamar super. Para deixar claro a chamada de um método do pai.

Valeu pelo retorno Flavio, eu venho da linguagem Java, então isso soa um pouco estranho, é uma boa prática fazer isso pra ficar explícito que o método vem do pai?

Não é boa prática não, foi um vício meu que deixei passar. Hábito é difícil de adquirir e difícil de perder também.

kkkk, sem problemas Flavio, mais uma vez obrigado pelo retorno.

Então não preciso usar a função super()? Na classe filha, posso apenas usar o self sem precisar do super()?