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

Detalhe sobre o hasattr()

Boa noite!

Para testar o hasattr(), fiz um print dele primeiro, sem o for. Porém, ele só retorna 'False'. Após vários testes e consultas à internet, cheguei à conclusão de que não dá para usá-lo se for construído numa função. Como assim?

Como criamos o atributo no def init(), ele está dentro de uma função (def) e, não, diretamente na classe.

# Classe 'Series'
class Series(Programa):
    temporadas = 9

hasattr(Series, 'temporadas') #retorna True

Espero que eu não tenha sido o único com essa dúvida! rsrsrs

2 respostas
solução!

Boa noite, Na verdade, ao inserir o atributo dentro da função init, o hasattr retorna True.

class Serie(Programa):
    def __init__(self, nome, ano, temporadas):
        super().__init__(nome, ano) #super chama a classe mãe
        self.temporadas = temporadas

friends = Serie('Friends',1994,10)
print(friends)
print(hasattr(friends, "temporadas")) #return True

Alessandra, tem razão... Não sei onde eu tinha errado... mas pelo que vi na internet, os tutoriais costumam colocar o atributo na classe, fora do construtor e, pra mim, fez sentido.

Obrigado pela ajuda!!!