Boa noite Felipe! Tudo bem com você?
Obrigado por compartilhar seu código. Ao testar seu código, tive o erro TypeError: can only concatenate str (not "int") to str
e isso está ocorrendo devido a ordem que você está passando os parâmetros da instância da classe. Deixo a seguir os ajustes que precisaremos fazer:
- No seu código, você está criando a instância
pessoa_1
com os parâmetros na ordem errada. A ordem correta, conforme o método __init__
, é nome
, profissao
, idade
. - Você implementou o método
aniversario
como um método de classe (@classmethod
), mas ele deveria ser um método de instância. Isso significa que ele deve operar sobre a instância específica de Pessoa
, e não sobre a classe em si.
Deixo a seguir o código completo com os ajustes:
class Pessoa:
def __init__(self, nome, profissao, idade):
self.nome = nome
self.profissao = profissao
self.idade = idade
def __str__(self):
return f'Nome: {self.nome}\nIdade: {self.idade}\nProfissão: {self.profissao}'
def aniversario(self):
self.idade += 1
@property
def saudacao(self):
return f'{self.nome} seja bem-vindo(a) à profissão de {self.profissao}!'
pessoa_1 = Pessoa('Michael', 'Bombeiro', 25)
pessoa_1.aniversario()
print(pessoa_1)
print(pessoa_1.saudacao)
Como resultado, teremos:
Nome: Michael
Idade: 26
Profissão: Bombeiro
Michael seja bem-vindo(a) à profissão de Bombeiro!
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado