<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Classes e Objetos
Step1:  Encapsulamento
Step2:  Desta forma não conseguimos recuperar e nem alterar o valor dessa variável privada. Para isso precisamos construir dois métodos, um para definir (setter) o valor e outro para recuperar (getter) o valor.
Step3:  Herança
<ASSISTANT_TASK:>
Python Code:
class Pessoa(object):
    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade
joao = Pessoa()
joao = Pessoa('João', 20)
print(joao, '\n')
print(joao.nome)
print(joao.idade)
joao.nome = 'João Pedro'
print(joao.nome)
maria = Pessoa('Maria', 20)
print(maria)
print(maria.nome)
print(maria.idade)
Explanation: Classes e Objetos
End of explanation
class Pessoa(object):
    def __init__(self, nome, idade):
        self.nome = nome
        self.__idade = idade
pedro = Pessoa('Pedro', 30)
print(pedro.nome)
print(pedro.__idade)
Explanation: Encapsulamento
End of explanation
class Pessoa(object):
    def __init__(self, nome, idade):
        self.nome = nome
        self.__idade = idade
        
    @property
    def idade(self):
        return self.__idade
    
    @idade.setter
    def idade(self, nova_idade):
        self.__idade = nova_idade
pedro = Pessoa('Pedro', 30)
print(pedro.nome)
pedro.idade = 50
print(pedro.idade)
Explanation: Desta forma não conseguimos recuperar e nem alterar o valor dessa variável privada. Para isso precisamos construir dois métodos, um para definir (setter) o valor e outro para recuperar (getter) o valor.
End of explanation
class Pessoa(object):
    def __init__(self, nome, idade):
        self.nome = nome
        self.__idade = idade
        
    @property
    def idade(self):
        return self.__idade
    
    @idade.setter
    def idade(self, nova_idade):
        self.__idade = nova_idade
class Atleta(Pessoa):
    def __init__(self, nome, idade, peso):
        Pessoa.__init__(self, nome, idade)
        self.peso = peso
        self.aposentado = False
        
    def aquecer(self):
        print("Atleta Aquecido")
    
    def aposentar(self):
        self.aposentado = True
jose = Atleta('Jose', 30, 80)
print(jose.aposentado)
jose.aposentar()
print(jose.aposentado)
jose.aquecer()
jose.nome = 'Zé'
print(jose.nome, jose.idade, jose.peso)
class Corredor(Atleta):
    def correr(self):
        print("Corredor correndo")
class Nadador(Atleta):
    def nadar(self):
        print("Nadador nadando")
class Ciclista(Atleta):
    def pedalar(self):
        print("Ciclista pedalando")
pedro = Ciclista('Pedro', 30, 100)
print(dir(pedro))
class Triatleta(Corredor, Nadador, Ciclista):
    def triatlo(self):
        print("Iniciar prova")
Explanation: Herança
End of explanation
<END_TASK>