Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dúvida retorno __str__

Boa noite, instrutor.

No caso de eu querer retornar mais de uma string, como eu realizaria isso no def str?

class Movie(Program):
    def __init__(self, name, year, duration):
        super().__init__(name, year)
        self.duration = duration


    def info(self):
        print(f"Name: {self._name}")
        print(f"Year: {self.year}")
        print(f"Duration: {self.duration}min")
        print(f"Likes: {self.likes}")


class Series(Program):
    def __init__(self, name, year, seasons):
        super().__init__(name, year)
        self.seasons = seasons


    def info(self):
        print(f"Name: {self._name}")
        print(f"Year: {self.year}")
        print(f"Seasons: {self.seasons}")
        print(f"Likes: {self.likes}")

Por exemplo nesse caso acima, onde eu quis separar as informações em print() diferentes

1 resposta
solução!

E aí, Alberth!

Entendi a dúvida, meu chapa. No caso, se você quer retornar mais de uma string no método __str__, a parada é juntar essas strings e devolver tudo bonitinho. Dá uma adaptada no teu código assim:

class Movie(Program):
    def __init__(self, name, year, duration):
        super().__init__(name, year)
        self.duration = duration

    def __str__(self):
        return f"Name: {self._name}\nYear: {self.year}\nDuration: {self.duration}min\nLikes: {self.likes}"

class Series(Program):
    def __init__(self, name, year, seasons):
        super().__init__(name, year)
        self.seasons = seasons

    def __str__(self):
        return f"Name: {self._name}\nYear: {self.year}\nSeasons: {self.seasons}\nLikes: {self.likes}"

Assim, o método __str__ agora retorna uma única string, concatenando todas as informações que você quer mostrar. Isso facilita na hora de usar o print ou qualquer outro lugar que espera uma representação de string do teu objeto.

Qualquer outra dúvida, manda bala! Estamos aqui!