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
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.