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

Dúvida no Ex. 3 da Aula 12 - Métodos estáticos

Olá,

Recebi o seguinte erro ao chamar no pyhon:

>>> perfis = Perfil.gerar_perfis('perfis.csv')

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'Perfil' has no attribute 'gerar_perfis'
>>>
9 respostas

Ola você colocou o parâmetro para nomear a função ?

quando vc usa ele sem usar a herança

@staticmethod

@staticmethod
   def gerar_perfis(nome_arquivo):
        arquivo = open(nome_arquivo,'r')
        perfis = []
        for linha in arquivo:
            valores = linha.split(',')
            perfis.append(Perfil(*valores))
        arquivo.close()
        return perfis

com a herança

@classmethod

 @classmethod
   def gerar_perfis(classe, nome_arquivo):
       arquivo = open(nome_arquivo,'r')
       perfis = []
       for linha in arquivo:
         valores = linha.split(',')
         perfis.append(classe(*valores))
       arquivo.close()
       return perfis

Sim Alan, coloquei como @staticmethod : veja:

@staticmethod def gerar_perfis(nome_arquivo): perfis = [] arquivo = open(nome_arquivo,'r') for linha in arquivo: valores = linha.split(',') perfis.append(Perfil(*valores)) arquivo.close() return perfis

Como esta a endentação?

Não. Não sei pq o código postado apareceu assim..

Mas o codigo está assim:

@classmethod def gerar_perfis(classe, nome_arquivo): arquivo = open(nome_arquivo,'r') perfis = [] for linha in arquivo: valores = linha.split(',') perfis.append(classe(*valores)) arquivo.close() return perfis

Poxa, não sei pq não está identando aqui no editor do forum.

Encima da text area tem um botão de formatação para code e 3 vezes ‘ no inicio e no fim

Se possível mande a sua class toda

Alan, Identifiquei o erro :-) conforme orientado, houve uma indentação errada em meu código. Revisei tudo, até encontrá-lo. Agradeço a ajuda.

solução!

Por favor marque o tópico como resolvido