Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

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

Classes Python2 x Python3

O seguinte código só funciona no python2?

class A:
   def __init__(self, nome):
      self.nome = nome

class B(A):
   def metodo_de_b(self):
       return '*' + super(B, self).nome

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas

Ainda estou tentando a adaptação para Python3 nesse código, mas estou com o seguinte erro:

AttributeError: 'super' object has no attribute 'nome'

Segue o código atual abaixo

class A:
    def __init__(self, nome):
        self.nome = nome

class B(A):
    def __init__(self,nome):
        super().__init__(nome)
    def metodo_de_b(self):
        return '*' + super(B, self).nome # vai dar problema, inverteu a ordem dos parâmetros
solução!

Após uma consulta em fórums online descobri:

class A:
    def __init__(self, nome):
        self.nome = nome

class B(A):
    def __init__(self,nome):
        super().__init__(nome)
    def metodo_de_b(self):
        return '*' + self.nome

Parece funcionar no Python3.