O que acontece se por acaso eu precisar de usar mais de um def str(self): na hora de chamar o print(programa) , o que vai acontecer ?
O que acontece se por acaso eu precisar de usar mais de um def str(self): na hora de chamar o print(programa) , o que vai acontecer ?
Olá Pedro, tudo bem com você?
Se definirmo mais de um método __str__
em na classe Programas
, o Python irá utilizar apenas o segundo método. Pois, quando temos métodos iguais, a primeira declaração será sobrescrita pela segunda declaração do método. Deixo abaixo um exemplo didático utilizando a classe Pessoa
:
class Pessoa:
def __init__(self, nome, sobre_nome, idade):
self.nome = nome
self.sobre_nome = sobre_nome
self.idade = idade
def __str__(self):
return f'Usuario: {self.nome} {self.sobre_nome}'
def __str__(self):
return f'Nome completo: {self.nome} {self.sobre_nome}, idade: {self.idade}'
objeto_pessoa = Pessoa('Ana', 'Clara', 25)
print(objeto_pessoa)
Resultado
Nome completo: Ana Clara, idade: 25
Note que a segunda definição do método __str__
sobrescreve a primeira definição, imprimindo além do nome completo é impresso a idade, algo que não é feito na primeira definição do método __str__
.
Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Abraços e bons estudos!