1
resposta

Duvida sobre o exercicio

Olá estou com problemas na execução do codigo, o VScode esta indicando erros no 'init' e no 'property'

class Pessoa: 
    def __init__(self, nome='Julio', profissao='Astronauta', idade=40):
        self.nome = nome
        self.profissao = profissao
        self.idade = idade

        def __str__ (self):
            return f'{self.nome} | {self.profissao}' | {self.idade}
        
        @property
        def saudacao(self):
                 
                if self.profissao:
                  return f' Que legal! então você ja foi para o espaço?'

                else:
                  return  f'Legal pena que nao foi pro espaço'

                def aniversario(self):
                    self.idade += 1
                    
                    print (self.idade)
1 resposta

Olá, Felipe! Tudo joia?

Analisando o código que você compartilhou, posso dizer que você tem alguns problemas com a indentação, e como em Python, a indentação é muito importante e faz parte da sintaxe da linguagem, um indentação feita de forma errada causa erros.

Vamos corrigir isso juntos:

class Pessoa: 
    def __init__(self, nome='Julio', profissao='Astronauta', idade=40):
        self.nome = nome
        self.profissao = profissao
        self.idade = idade

    def __str__ (self):
        return f'{self.nome} | {self.profissao} | {self.idade}'
        
    @property
    def saudacao(self):
        if self.profissao:
            return f'Que legal! então você já foi para o espaço?'
        else:
            return  f'Legal, pena que não foi pro espaço'

    def aniversario(self):
        self.idade += 1
        print (self.idade)

Perceba que todos os métodos dentro da classe Pessoa devem estar no mesmo nível de indentação. No seu código original, os métodos __str__, saudacao e aniversario estavam indentados dentro do método __init__, o que estava causando o erro.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.