1
resposta

Pode estar vazia? def __str__(self)

Vi que usando pass, continua funcionando perfeitamente, pois é reescrita, mas qual a vantagem de nao deixar a def str(self) vazia?

 def __str__(self):
        pass
1 resposta

Não tenho certeza se entendi sua dúvida. A vantagem de não deixar as __str__ vazia, ou em outras palavras, de implantá-la, é que vc pode imprimir a representação de objetos como você desejar.

class Pessoa:
    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade

pessoa = Pessoa("Joao", 12)
print(pessoa)

Retorna uma informação da classe e endereço na memória. Não muito útil na maioria dos casos

class Pessoa:
    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade
    def __str__(self):
        return f"{self.nome} - {self.idade}"

pessoa = Pessoa("Joao", 12)
print(pessoa)

Retorna "Joao - 12"