1
resposta

Sobre __str__ na classe programa

Oi, tudo bem? Como nos vamos usar nesse exemplo mais as classes que vão herdar da superclasse Programa, porque precisariamos colocar um dunder de string nele? Por que eu nao estou conseguindo ver como usar apenas Programa(ano, nome) já que vamos usar Filme() e Serie() e outros.

1 resposta

Olá Yuri, tudo bem? Entendi sua dúvida. O método especial __str__ é utilizado para retornar uma representação em string do objeto. No caso da classe Programa, ele pode ser útil para imprimir as informações do programa de uma forma mais legível e amigável para o usuário.

Quanto à sua pergunta sobre o uso das classes que herdam da superclasse Programa, o método __str__ definido na classe Programa pode ser utilizado por todas as subclasses que herdam dela. Isso significa que, se você definir um método __str__ na classe Programa, ele será herdado por todas as subclasses, como Filme e Serie.

Por exemplo, se você criar um objeto da classe Filme, ele terá acesso ao método __str__ definido na classe Programa, que pode ser utilizado para imprimir informações específicas do filme, além das informações gerais da classe Programa.

Veja um exemplo de como o método __str__ pode ser utilizado na classe Programa:

class Programa:
    def __init__(self, ano, nome):
        self.ano = ano
        self.nome = nome

    def __str__(self):
        return f"{self.nome} ({self.ano})"

class Filme(Programa):
    def __init__(self, ano, nome, duracao):
        super().__init__(ano, nome)
        self.duracao = duracao

    def __str__(self):
        return f"{self.nome} ({self.ano}) - {self.duracao} min"

# Cria um objeto da classe Filme
filme = Filme(2021, "Matrix", 120)

# Imprime o objeto usando o método __str__
print(filme)

Neste exemplo, o método __str__ da classe Filme sobrescreve o método __str__ da classe Programa para imprimir informações específicas do filme.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software