Estou lendo um arquivo de texto com varias "Pessoas" guardadas nele, porem quando entra no loop "for" para pegar as variáveis do arquivo e adicionar numa "list" de objetos pessoas.
def ler_todos():
arquivo = busca_arquivo_pessoas("r")
lista_pessoas = []
pessoa_info = []
# Identifica qual dos atributos da pessoa e adiciona numa lista
# Quando chega em next ele adiciona no objeto pessoa e dar um pop() na informação
for linha in arquivo:
if linha.find("nome:") == 0:
pessoa_info.append(linha.strip().lower().replace("nome:",""))
elif linha.find("telefone:") == 0:
pessoa_info.append(linha.strip().lower().replace("telefone:",""))
elif linha.find("endereco:") == 0:
pessoa_info.append(linha.strip().lower().replace("endereco:",""))
elif linha.find("estado:") == 0:
pessoa_info.append(linha.strip().lower().replace("estado:",""))
elif linha.find("next" == 0):
pessoa = Pessoa
pessoa.setNome(pessoa, pessoa_info.pop(0))
pessoa.setTelefone(pessoa, pessoa_info.pop(0))
pessoa.setEndereco(pessoa, pessoa_info.pop(0))
pessoa.setEstado(pessoa, pessoa_info.pop(0))
lista_pessoas.append(pessoa)
# Display no console lista de pessoas
display_pessoas(lista_pessoas)
Mesmo a "pessoa =Pessoa" só existindo dentro do "elif linha.find("next" == 0):", na próxima vez que o for é rodado e chega no "next" ele pega o mesmo endereço de memoria e esta sobrescrevendo a informação, quando termina o "for" e entra no "display_pessoas(lista_pessoas) ", como o objeto foi sobrescrito, ele o numero correto de pessoas que esta cadastrado, mas a informação de nome, telefone, endereço e estado, estão trazendo apenas a informação do ultimo registro.
Alguém tem alguma ideia de como fazer isso.
Obs: Se armazenar numa list ao invés de um objeto, ele funciona, e eu gostaria de fazer funcionar usando um objeto.