Boa tarde, comunidade Alura!
Eu tô com um problema no meu projeto de aplicativo de listagem de imóveis; eu tô querendo que ele imprima o resultado do código que eu criei quando executado, mas o programa mostra que ele tá perdido na memória e eu não sei como fazer para exibi-lo. Alguém poderia me ajudar na solução, por gentileza?
Segue os códigos Python que eu criei até agora:
lista_imoveis.py
from modelos.codigo import Codigo
class Imovel:
imoveis = []
def __init__(self,endereco,cidade,bairro,numero,cep,complemento):
self._endereco = endereco
self._cidade = cidade
self._bairro = bairro
self._numero = numero
self._cep = cep
self._complemento = complemento
self._ativo = False
self._codigo = []
Imovel.imoveis.append(self)
def __str__(self):
return f'{self._endereco} | {self._cidade} | {self._bairro} | {self._numero} | {self._cep} | {self._complemento} | {self._codigo}'
@classmethod
def listar_imoveis(cls):
for imovel in cls.imoveis:
print(f'Endereço: {imovel._endereco}')
print(f'Cidade: {imovel._cidade}')
print(f'Bairro: {imovel._bairro}')
print(f'Número: {imovel._numero}')
print(f'CEP: {imovel._cep}')
print(f'Complemento: {imovel._complemento}')
print(f'Status: {imovel.ativo}\n')
print(f'Código: {imovel._codigo}\n')
@property
def ativo(self):
return 'disponivel pra venda' if self._ativo else 'indisponível'
def alternar_status(self):
self._ativo = not self._ativo
def receber_codigo(self,local,num_codigo):
codigo = Codigo(local,num_codigo)
self._codigo.append(codigo)
codigo.py
class Codigo:
def __init__(self,local,num_codigo):
self._local = local
self._num_codigo = num_codigo
app.py
from modelos.lista_imoveis import Imovel
import random
imovel_1 = Imovel('Avenida Novo Horizonte','Santo André','Vila Sacadura Cabral', 174 ,'09060820','apt1')
numero_aleatorio = random.randint(1,1000)
imovel_1.receber_codigo('São Paulo',numero_aleatorio)
def main():
Imovel.listar_imoveis()
if __name__ == '__main__':
main()