1
resposta

duvida __str__

por que não preciso quando uso o str chamar o método, apenas a iteração ja me retorna ?

Ex: def str(self): return f"{self.nome} - {self.ano}: {self.temporadas} temp. e {self.likes} Likes"

for programa in filmes_e_series:
print(programa)

Se fosse o imprime, eu precisaria de um print(programa.imprime()) , conforme abaixo:

def imrpime(self): return f"{self.nome} - {self.ano}: {self.temporadas} temp. e {self.likes} Likes"

for programa in filmes_e_series:
print(programa.imprime())
1 resposta

Olá tudo bem ?

Quando criamos uma Class e definimos o método __str__ que é uma palavra do python da mesma forma que o __init__. O método __str___ espera que retornemos uma string que seja a representação do objeto.

Quando chamamos a função print passando nosso objeto como parâmetro o python por padrão vai chamar internamento o método __str__.

Por contra partida quando nesse caso quanto tu chama o método imprimir você esta executando um método da sua escolha.

Espero ter ajudado.