[Python] Ajuda! Object Does Not Support Indexing

Pessoal, estou aqui com um problema… Deve de me faltar alguma cosia no código…
Eu fiz uma agenda e queria mostrar as pessoas, eu tenho uma class para as pessoas com setNome e setId…

O problema é que quando eu quero ver a lista aparece: Object Does Not Support Indexing…

Está aqui o código pra ver a lista…

#Aqui vai fazer o for para percorrer os dados do array.

def Lista():
print("\n------- Agenda ------\n")
for pessoa in pessoas:
Dadospessoas(pessoa[0], pessoa[1], pessoa[2], pessoa[3], pessoa[4], pessoa[5])
print("\n---- Fim da Agenda ----\n")

#Aqui vai dar o print

def Dadospessoas(id, nome, numero, idade, altura, peso):
print("[Pessoa %s]\nNome: %s \nNúmero de Telemóvel: %s \nIdade: %s anos\nAltura: %s metros\nPeso: %s kg\n" % (id, nome, numero, idade, altura, peso))

#Código da minha class Pessoa:

class Pessoa:

def __init__(self, id, nome, numero, idade, altura, peso):
	self.id = id
	self.nome = nome
	self.numero = numero
	self.idade = idade
	self.altura = altura
	self.peso = peso
	
def getId(self):
	return self.id
	
def setId(self, id):
	self.id = id
	
def getNome(self):
	return self.nome
	
def setNome(self, nome):
	self.nome = nome

def getNumero(self):
	return self.numero
	
def setNumero(self, numero):
	self.numero = numero

def getIdade(self):
	return self.idade
	
def setIdade(self, idade):
	self.idade = idade
	
def getAltura(self):
	return self.altura
	
def setAltura(self, altura):
	self.altura = altura
	
def getPeso(self):
	return self.peso
	
def setPeso(self, peso):
	self.peso = peso

Obrigado a quem me puder ajudar!

Essa linha:

Dadospessoas(pessoa[0], pessoa[1], pessoa[2], pessoa[3], pessoa[4], pessoa[5])

Mude para…

Dadospessoas(pessoa.getId(), pessoa.getNome()...)

Ou faça orientado a objetos:

Dadospessoas(pessoa)

E na função:

def Dadospessoas(pessoa):
    print("[Pessoa %s]\nNome: %s \nNúmero de Telemóvel: %s \nIdade: %s anos\nAltura: %s metros\nPeso: %s kg\n" % (pessoa.getId(), nome.getNome()...))

Obrigado! Ajudou bastante!

Cara ajudou bastante, mas estou com o mesmo problema mas o processo é diferente… eu tou faznedo uma agenda e coloquei a opção de “Alterar dados” por exemplo eu adicionei uma pesoa mas quero alterar o nome dessa pessoa depois de ter sido adicionada. Então eu fiz uma função pra ele procurar a pessoa e tá funcionando o problema é que na hora de editar o nome ele dá esse erro… Vou mostrar o erro numa print e o código q to usando…

Código editar o nome da pessoa:

def alterarnome(pesquisa):
global pessoa
nome=input("\nInsira o nome -> “)
nome=pessoas[pesquisa][1]
p.setNome(nome)
print(”\nNome alterado.")
menueditar(pesquisa)

Erro que tá dando:

image

Erro: “Type error ‘Pessoa’ object does not support indexing”

Lembrando que a Pessoa e a class